我想绘制一些数据并在右侧添加一个 ytick,但是当我这样做时,左侧的刻度消失了,我想保留它。有人能帮助我吗 ?我看过其他关于此的帖子,但它们都使用 ax.
命令,而我对此并不熟悉,我只使用 plt.
函数。
我使用了这些命令:
plt.yticks([seuil1,seuil2],["20%","20%"])
plt.tick_params(axis='y',labelleft=False,labelright=True)
没有 yticks 的绘图:
右侧带有 yticks 的绘图:
如您所见,左侧消失了。
最佳答案
关于使用 plt 和 ax 之间的区别,这是使用 matplotlib 的两种不同风格;它们分别是 pyplot 和面向对象的风格。
通过 pyplot 风格的 matplotlib 创建和管理图形和轴,您可以使用 plt.
函数来操作它们。
使用面向对象的风格,您可以显式创建图形和轴 (fig, ax = plt.subplots()
),然后在 fig
或 ax
来操纵它们。这是我在示例中采用的方法。
看看matplotlib usage guide和他们的tutorials了解如何创建和自定义绘图。
这里你想使用twinx
创建另一个共享 x 轴的轴,允许您将其他 y 刻度放置在右侧 y 轴上。我已在每一行上方注释了该行正在执行的操作。
# Create a figure and ax
fig, ax = plt.subplots()
# Get data
x = np.linspace(0, 10, 101)
y = 1 / x
# Plot the data
ax.plot(x, y, label=r"$f(x)=\frac{1}{x}$")
# Place legend
ax.legend(loc="upper right")
# Create a second y-axis
y2 = ax.twinx()
# Copy the y limits from the left axis
y2.set_ylim(ax.get_ylim())
# Set the right y-yick positions
y2.set_yticks([2, 6])
# Set the right y-tick labels
y2.set_yticklabels(["A", "B"])
产生:
关于python - 如何在右侧绘制 yticks 并保留经典的左侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67538091/