Python 如何在matplotlib双y轴图表中对齐条形和直线?

Python 如何在matplotlib双y轴图表中对齐条形和直线?,python,matplotlib,pandas,Python,Matplotlib,Pandas,我有一个很好的建议,如下所示: >>> 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

我有一个很好的建议,如下所示:

>>> 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\u pft']]。取消堆栈('STK\u ID')。绘图(kind='bar',使用'u index=True)
创建条形图

df['sales_gr','net_pft_gr']]。绘图(kind='line',use_index=True)
创建折线图:

现在我想使用twinx()将它们放在一个由两个y轴组成的图表中

结果如下:

我的问题是:

  • 如何在同一个x-Ticker上移动线条以与条对齐
  • 如何让左y_轴和右y_轴标记对齐在同一条线上
只需将最后一行更改为:

ax2.plot(ax.get_xticks(),
         df[['sales_gr','net_pft_gr']].values,
         linestyle='-',
         marker='o', linewidth=2.0)
你会准备好的

我不太明白你的第二个问题。第一个y轴和第二个y轴的比例不同,将它们对齐到同一条线是什么意思?它们不能与同一轴线对齐(是的,可以对齐,但右轴看起来很难看,其值类似于0.687)。无论如何,您可以:

ax.set_ylim((-10, 80.))
要对齐它们,绘图现在看起来很难看:


不谢不谢,不客气,熊猫、小熊猫和小熊猫现在在中国也很受欢迎吗?是的。如果您使用python进行一些像样的计算,迟早您会需要numpy,然后熊猫,无论您在哪里。。。
ax.set_ylim((-10, 80.))