如何调整使用secondary_y的pandas双Y轴绘图的刻度与标签大小
解决方法
使用secondary_y=True创建的右侧Y轴是独立的坐标轴实例,你当前只配置了左侧Y轴ax1的刻度样式,只要拿到右侧Y轴的实例再做一次配置即可。
你可以在调用第二遍df.plot时直接接收返回的右侧坐标轴对象:
import pandas as pd import numpy as np # 示例数据构造 sample_length = range(1, 2+1) rads = np.arange(0, 2*np.pi, 0.01) data = np.array([np.sin(t*rads) for t in sample_length]) df = pd.DataFrame(data.T, index=pd.Series(rads.tolist(), name='radians'), columns=[f'freq: {i}x' for i in sample_length]) # 绘图代码 ax1 = df.plot(y='freq: 1x', ylabel='left-Y', figsize=(8, 5)) # 接收返回的右侧Y轴对象ax2 ax2 = df.plot(y='freq: 2x', secondary_y=True, ax=ax1) ax1.tick_params(axis='both', labelsize=20) # 给右侧Y轴也设置刻度字体大小 ax2.tick_params(axis='y', labelsize=20)
也可以通过ax1自带的right_ax属性直接获取右侧坐标轴,不需要额外接收返回值:
ax1 = df.plot(y='freq: 1x', ylabel='left-Y', figsize=(8, 5)) df.plot(y='freq: 2x', secondary_y=True, ax=ax1) ax1.tick_params(axis='both', labelsize=20) ax1.right_ax.tick_params(axis='y', labelsize=20)
两种写法都可以实现左右双Y轴刻度字体大小同步调整。
内容的提问来源于stack exchange,提问作者Dametime
相关产品推荐
相关产品推荐

