我正在绘制一个带有两个 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()
Run Code Online (Sandbox Code Playgroud)
我不知道为什么这不起作用。如果您想保留循环(从而保留原始刻度位置),您可以直接访问标签:
for label in ax2.yaxis.get_majorticklabels():
label.set_size(30)
label.set_color('green')
Run Code Online (Sandbox Code Playgroud)
如果您想使用 matplotlib 引擎根据新格式确定刻度的间距/位置,您可以通过以下方式完全避免循环:
ax1.tick_params(axis='y', labelcolor='purple', labelsize=30)
ax2.tick_params(axis='y', labelcolor='green', labelsize=30)
Run Code Online (Sandbox Code Playgroud)