如何修改双Y轴图表中X轴日期标签的旋转角度?
解决双Y轴图表X轴日期标签旋转问题
没问题!在双Y轴图表里调整X轴日期标签的旋转角度其实很简单——因为双Y轴共享同一个X轴,直接操作主坐标轴(也就是你代码里的ax1)的X轴参数就可以了。另外我还帮你修正了代码里的两个小问题,避免图表显示异常:
修改后的完整代码
import matplotlib.pyplot as plt # 修复重复创建figure的问题,避免轴关联错误 fig, ax1 = plt.subplots(figsize=(8,6)) t = df['date'] s1 = df['msft'] ax1.plot(t, s1, 'b-') ax1.set_xlabel('Dates') ax1.legend(['msft'], loc=0) ax1.grid() # 设置左侧Y轴样式 ax1.set_ylabel('Price', color='b') ax1.tick_params(axis='y', colors='b') # 添加右侧Y轴 ax2 = ax1.twinx() s2 = df['amzn'] ax2.plot(t, s2, 'r-') ax2.set_ylabel('amzn', color='r') # 修正tick_params的参数,ax2的tick应该针对y轴,不是'date' ax2.tick_params(axis='y', colors='r') ax2.legend(['amzn'], loc=1) # 关键:旋转X轴日期标签,直接操作ax1的x轴 ax1.tick_params(axis='x', rotation=45, ha='right') # ha='right'让标签右对齐,更美观 fig.tight_layout() plt.show()
关键改动说明
- 移除了重复的
fig = plt.figure(figsize=(8,6)),因为plt.subplots()已经创建了figure对象,重复创建会导致后续的轴关联失效 - 添加了
ax1.tick_params(axis='x', rotation=45, ha='right'):这行代码专门针对X轴的刻度标签设置旋转角度(这里设为45度),ha='right'让标签右对齐,避免重叠 - 修正了
ax2.tick_params('date', colors='r')的错误参数,改为axis='y',因为ax2是右侧Y轴,我们要设置的是它的Y轴刻度颜色
如果需要调整其他X轴标签样式(比如字体大小),也可以在tick_params里添加labelsize参数,比如:
ax1.tick_params(axis='x', rotation=45, ha='right', labelsize=10)
内容的提问来源于stack exchange,提问作者Ann Kriebel
相关产品推荐
相关产品推荐

