python - 如何在 matplotlib 中添加额外的 y 轴标签

标签 python matplotlib

我正在尝试在轴的右侧添加额外的轴标签,但不需要刻度线或刻度线标签。

import pandas as pd
import matplotlib.pyplot as plt

fig, axs = plt.subplots(2,2,sharey=True,sharex=True)
for i in range(2):
    for j in range(2):
        pd.Series(np.random.random(10)).plot(ax=axs[i,j])
        axs[0,j].set_title('j = {}'.format(j))
    ax[1,j].set_ylabel('x')
    secaxy = axs[i,1].secondary_yaxis('right')
    secaxy.set_ylabel('i = {}'.format(i))
    secaxy.set_yticks([])
    ax[i,0].set_ylabel('y')

出于某种原因,set_yticks([]) 不会替换刻度。

[In]: secaxy.get_yticks()
[Out:] array([-0.25,  0.  ,  0.25,  0.5 ,  0.75,  1.  ,  1.25])

在图右侧获得不带刻度的附加轴标签的便捷方法是什么?

correct labels, but need to remove the ticks on the right

最佳答案

我不会为此滥用辅助轴。只需将标签放在右侧并使其可见即可。

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

fig, axs = plt.subplots(2,2,sharey=True,sharex=True) 
for i in range(2):
    for j in range(2):
        pd.Series(np.random.random(10)).plot(ax=axs[i,j])
for j in range(2):
    axs[0,j].set_title('j = {}'.format(j))
for i in range(2):
    axs[i,1].set_ylabel('i = {}'.format(i))
    axs[i,1].yaxis.get_label().set_visible(True)
    axs[i,1].yaxis.set_label_position("right")
    axs[i,0].set_ylabel('y')

plt.show()

enter image description here

关于python - 如何在 matplotlib 中添加额外的 y 轴标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57436986/

相关文章:

python - PyFMI 模型交换和联合仿真结果不同?

php - 电子商务是否从零开始

javascript - 表的多个复选框值存储在数组中并将数组发送到flask

python - 使用 matplotlib 绘制 sklearn LinearRegression 输出

python - 如何更改 matplotlib 图例框中的名称?

python - 我应该如何处理 python 上下文管理器中的 None ?

python - 即使填充了大部分数据也无法插入数据帧

python - 使用 tf.io.decode_jpeg 导入后出现 TypeError : Image data cannot be converted to float with plt. imshow

python - 在 matplotlib 图中对两点之间的区域进行着色

python - 以百万为单位设置 y Axis