Python 多轴不从零开始
我画了一个具有多轴的图,有几个问题:Python 多轴不从零开始,python,matplotlib,Python,Matplotlib,我画了一个具有多轴的图,有几个问题: 为什么左侧y轴未从零开始转动。(我指的是零点 不是在y轴的开始处) 我只想要x轴的主网格(每周的主网格线),但是代码添加了一个mjor y轴的网格也是如此 如何为y轴(红色网格(ax2))添加次要网格 我想将x轴标签(日期)的颜色更改为黑色 import matplotlib.pyplot as plt Hits= pd.read_excel("stackoverflow_example.xlsx", sheet_name=&quo
import matplotlib.pyplot as plt
Hits= pd.read_excel("stackoverflow_example.xlsx", sheet_name="data")
fig=plt.figure(figsize=(20,10))
ax=fig.add_subplot(111, label="1")
ax2=fig.add_subplot(111, label="2", frame_on=False)
ax.bar(Hits['Date'], Hits['Total'], width=0.35, color="b" )
ax.set_ylabel('Hits', color="b",size=16)
ax.yaxis.set_label_position('right')
ax.tick_params(axis='y', colors="b")
ax.tick_params(axis='x', colors="b", rotation=45)
ax.yaxis.tick_right()
ax2.plot(Hits['weeks'], Hits['Cases'], linewidth= 3.5, color="Red")
ax2.set_ylabel("Cases", color="Red",size=16)
ax2.tick_params(axis='y', colors="Red", size=16)
ax2.xaxis.set_ticks_position('top')
major_ticks = np.arange(0, 10, 1)
ax.set_xticks(major_ticks)
ax.grid(which='major', alpha=0.5)
plt.show()
如果要从零开始,可以使用“ax2.set_ylim()”。然后,可以指定网格的轴。如果颜色为黑色,可以设置color='k'
import matplotlib.pyplot as plt
fig=plt.figure(figsize=(20,10))
ax=fig.add_subplot(111, label="1")
ax2=fig.add_subplot(111, label="2", frame_on=False)
ax.bar(Hits['Date'], Hits['Total'], width=0.35, color="b" )
ax.set_ylabel('Hits', color="b",size=16)
ax.yaxis.set_label_position('right')
ax.tick_params(axis='y', colors="b")
ax.tick_params(axis='x', colors="k", rotation=45)
ax.yaxis.tick_right()
ax2.plot(Hits['weeks'], Hits['Cases'], linewidth= 3.5, color="Red")
ax2.set_ylabel("Cases", color="Red",size=16)
ax2.tick_params(axis='y', colors="Red", size=16)
ax2.xaxis.set_ticks_position('top')
ax2.set_ylim(0,62) # update
major_ticks = np.arange(0, 10, 1)
ax.set_xticks(major_ticks)
ax.grid(which='major', axis='x', alpha=0.5) #update
ax2.grid(which='major', axis='y', alpha=0.5) # update
plt.show()
ax2.grid(which='minor',axis='y',alpha=0.4)…我试图添加此行,但未显示次网格。ax2.set_ylim(0,62)…如果我想将数字增加5…0,5,10,15,20,…,65怎么办?您复制并执行了所有代码吗?以及
ax2.set_ylim(0,65)
应该这样做。是的,我超出了代码,它可以工作。但是如果我更灵活一些,例如,y记号随着步长=3或7而增加,我添加了行ax2.yaxis.set_记号([0,3,6,…,66]),它可以工作。还有其他方法吗?