python – 如何使用数据帧创建带有secondary_y的条形图

我想创建一个包含在Pandas数据帧中的两个系列(比如’A’和’B’)的条形图.如果我想用不同的y轴绘制它们,我可以使用secondary_y:

df = pd.DataFrame(np.random.uniform(size=10).reshape(5,2),columns=['A','B'])
df['A'] = df['A'] * 100
df.plot(secondary_y=['A'])

但是如果我想创建条形图,则会忽略等效命令(它不会在y轴上放置不同的比例),因此来自“A”的条形图很大,以至于无法区分“B”条形图:

df.plot(kind='bar',secondary_y=['A'])

我怎么能直接在熊猫中做到这一点?或者你会如何创建这样的图表?

我正在使用pandas 0.10.1和matplotlib 1.2.1版.

最佳答案 不要以为熊猫图表支持这一点.做了一些手动matplotlib代码..你可以进一步调整它

import pylab as pl
fig = pl.figure()
ax1 = pl.subplot(111,ylabel='A')
#ax2 = gcf().add_axes(ax1.get_position(), sharex=ax1, frameon=False, ylabel='axes2')
ax2 =ax1.twinx()
ax2.set_ylabel('B')
ax1.bar(df.index,df.A.values, width =0.4, color ='g', align = 'center')
ax2.bar(df.index,df.B.values, width = 0.4, color='r', align = 'edge')
ax1.legend(['A'], loc = 'upper left')
ax2.legend(['B'], loc = 'upper right')
fig.show()

我相信有办法迫使一个酒吧进一步调整它.将酒吧进一步分开,略微透明等

点赞