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

标签 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()

最佳答案

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

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

关于python - Matplotlib。无法更改第二个 y 轴上的刻度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64029924/

相关文章:

python - 从 Django 内部调用时,Subprocess.Popen 与交互式程序挂起

python - 如何使用 Python pandas 验证日期?

python - 在python中,将系统命令的输出作为字符串获取

python - Pandas DataFrame 列到数据透视表中的单元格

python - 为什么 del 不做同样的事情?

python - Figsize 不适用于 matplotlib 3d 绘图

python-3.x - 在 FreeBSD 上使用 pip3 安装 matplotlib 失败

python - seaborn中clustermap的标签

python - 带有远程ssh解释器的pycharm中的matplotlib

python - 使用 python 读取 .dat 文件