Matplotlib。无法更改第二个y轴上的刻度

时间:2020-09-23 14:14:27

标签: python matplotlib

我正在绘制带有两个y轴的图,但找不到改变第二个y轴上的刻度的方法。我没有任何错误,但是右边的刻度完全没有变化。

import matplotlib.pyplot as plt

x = [x for x in range(11)]
y1 = [x for x in range(0, 101, 10)]
y2 = [x for x in range(20, 31, 1)]

fig, ax1 = plt.subplots()
ax2 = plt.twinx()

ax1.plot(x, y1)
ax2.plot(x, y2)

for tick in ax1.yaxis.get_major_ticks():
        tick.label.set_fontsize(30)
        tick.label.set_color('purple')
        
for tick in ax2.yaxis.get_major_ticks():
        tick.label.set_fontsize(30)
        tick.label.set_color('green')
        
plt.show()

1 个答案:

答案 0 :(得分:2)

我不知道为什么这行不通。如果您想保持循环(从而保留原始刻度位置),则可以直接访问标签:

LinearLayout

enter image description here

如果要使用matplotlib引擎根据新格式确定刻度线的间隔/位置,则可以完全避免循环:

for label in ax2.yaxis.get_majorticklabels():
    label.set_size(30)
    label.set_color('green')

enter image description here