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

6

我正在使用两个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个回答

3

我不知道为什么那个不起作用。如果你想保留循环(从而保留原始的刻度位置),你可以直接访问标签:

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

enter image description here

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

ax1.tick_params(axis='y', labelcolor='purple', labelsize=30)
ax2.tick_params(axis='y', labelcolor='green', labelsize=30)

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接