我有一个PandasDF如下:
>>> df
sales net_pft sales_gr net_pft_gr
STK_ID RPT_Date
600809 20120331 22.1401 4.9253 0.1824 -0.0268
20120630 38.1565 7.8684 0.3181 0.1947
20120930 52.5098 12.4338 0.4735 0.7573
20121231 64.7876 13.2731 0.4435 0.7005
20130331 27.9517 7.5182 0.2625 0.5264
20130630 40.6460 9.8572 0.0652 0.2528
20130930 53.0501 11.8605 0.0103 -0.0461
字符串
然后df[['sales','net_pft']].unstack('STK_ID').plot(kind='bar', use_index=True)
创建条形图。
和df[['sales_gr','net_pft_gr']].plot(kind='line', use_index=True)
创建折线图:
现在我想使用twinx()将它们放在一个有两个y轴的图表中。
import matplotlib.pyplot as plt
fig = plt.figure()
ax = df[['sales','net_pft']].unstack('STK_ID').plot(kind='bar', use_index=True)
ax2 = ax.twinx()
ax2.plot(df[['sales_gr','net_pft_gr']].values, linestyle='-', marker='o', linewidth=2.0)
型
结果如下:
我的问题是:
- 如何将线移动到与条形图对齐的同一个x标记?
- 如何让左、右Y轴代码对齐在同一条线上?
1条答案
按热度按时间w46czmvw1#
把最后一行改成:
字符串
一切都会好的。
的数据
我不太明白你的第二个问题。第一个和第二个y轴是不同的比例,你把它们对齐到同一条线是什么意思?它们不能对齐到同一条网格线(是的,你可以,但右边的轴看起来很难看,有0.687之类的值)。无论如何,你可以这样做:
型
让他们站在一起,现在的情况看起来很糟糕:
的