我的图表没有';t在后台完全显示x轴和栅格(Matplotlib/Python)

我的图表没有';t在后台完全显示x轴和栅格(Matplotlib/Python),python,matplotlib,Python,Matplotlib,我正试图在一张带有第二个Y轴的图表上绘制一些收入与息税前利润。 一切似乎都很好,除了 网格不会完全显示 x轴也不完全显示 有没有人有一个完全显示这两个特性的解决方案 以下是我的图表的屏幕帽: 以下是数据: 这是我的代码: x = msft_ebit_revenue_new['period'] y1 = msft_ebit_revenue_new['EBIT'] y2 = msft_ebit_revenue_new['Revenues'] 打印线1(左Y轴) #打印线2(右Y轴) 装饰

我正试图在一张带有第二个Y轴的图表上绘制一些
收入
息税前利润
。 一切似乎都很好,除了

  • 网格不会完全显示
  • x轴也不完全显示
有没有人有一个完全显示这两个特性的解决方案

以下是我的图表的屏幕帽:

以下是数据:

这是我的代码:

x = msft_ebit_revenue_new['period'] 
y1 = msft_ebit_revenue_new['EBIT']
y2 = msft_ebit_revenue_new['Revenues']
打印线1(左Y轴) #打印线2(右Y轴)

装饰物 ax1(左Y轴) ax2(右Y轴) 谢谢大家!

亚历克斯

问题
  • 显示x轴标签
  • 显示网格
解决方案 对以下行进行注释:

ax2.set_xticks(np.arange(0, len(x), 60))
ax2.set_xticklabels(x[::60], rotation=90, fontdict={'fontsize':10})

问题似乎与以下行有关:ax2.set_xticks(np.arange(0,len(x),60))ax2.set_xticklabels(x[::60],rotation=90,fontdict={'fontsize':10})。在注释这些线时,网格变得可见。在这里,您是x轴的孪生体。ax2=ax1.twinx()。从而创建两个y轴。因此,在我看来,在这些条件下,定义两组不同的网格线和x轴会导致这个问题。
ax2 = ax1.twinx()  # instantiate a second axes that shares the same x-axis
ax2.plot(x, y2, color='tab:blue')
ax1.set_xlabel('Period', fontsize=10)
ax1.tick_params(axis='x', rotation=0, labelsize=12)
ax1.set_ylabel('EBIT', color='tab:red', fontsize=20)
ax1.tick_params(axis='y', rotation=0, labelcolor='tab:red' )
ax1.grid(alpha=.4)
ax2.set_ylabel("Revenues ($ in millions)", color='tab:blue', fontsize=20)
ax2.tick_params(axis='y', labelcolor='tab:blue')
ax2.set_xticks(np.arange(0, len(x), 60))
ax2.set_xticklabels(x[::60], rotation=90, fontdict={'fontsize':10})
ax2.set_title("EBIT vs Revenues (MSFT)", fontsize=22)
fig.tight_layout()
plt.show()
ax2.set_xticks(np.arange(0, len(x), 60))
ax2.set_xticklabels(x[::60], rotation=90, fontdict={'fontsize':10})