python - 如何在右侧绘制 yticks 并保留经典的左侧

标签 python matplotlib plot

我想绘制一些数据并在右侧添加一个 ytick,但是当我这样做时,左侧的刻度消失了,我想保留它。有人能帮助我吗 ?我看过其他关于此的帖子,但它们都使用 ax. 命令,而我对此并不熟悉,我只使用 plt. 函数。

我使用了这些命令:

plt.yticks([seuil1,seuil2],["20%","20%"])
plt.tick_params(axis='y',labelleft=False,labelright=True)

没有 yticks 的绘图: Plot without yticks

右侧带有 yticks 的绘图: Plot with yticks right side

如您所见,左侧消失了。

最佳答案

关于使用 plt 和 ax 之间的区别,这是使用 matplotlib 的两种不同风格;它们分别是 pyplot 和面向对象的风格。

通过 pyplot 风格的 matplotlib 创建和管理图形和轴,您可以使用 plt. 函数来操作它们。

使用面向对象的风格,您可以显式创建图形和轴 (fig, ax = plt.subplots()),然后在 figax 来操纵它们。这是我在示例中采用的方法。

看看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"])

产生:

Graph of y = 1/x with right tick labels

关于python - 如何在右侧绘制 yticks 并保留经典的左侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67538091/

相关文章:

python - 值在图中看不清楚

python - 如何强制 matplotlib 将 x 轴上的值显示为整数

r - 如何使用 R 创建叶序螺旋

python - 在 Pandas 中将两行加在一起形成一长行

python - 在python中将包名和函数名作为变量传递

Python datetime.strptime 默认

python - 将列添加到现有数据框中,但将所有数字输入为 NaN

python - 如何在不同轴上绘制 numpy 数组的数字?

python - Barplot savefig() 返回一个 AttributeError

javascript - 删除第一个点和最后一个点之间的线 (line-chart/flot.js)