仅在 RHS 上更改 y 轴刻度
Change y-axis ticks only on RHS
我想更改右侧 y 轴(但不是左侧)的刻度值。
这是一个 MWE:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [1, 2, 3])
ax.tick_params(axis="y", which="both", labelright="on")
ax.tick_params(axis="y", which="both", labelleft="on", labelright="on")
ax.set_yticks([1, 2, 3])
plt.show()
使用 set_yticks
命令我得到了两个轴上的行为:
作为参考,这里是默认报价:
我正在寻找类似
的东西
ax.set_yticks([1, 2, 3], which='right')
这样我就可以在左轴上每 0.25 个刻度,在右轴上每 1 个刻度。有什么想法吗?
一种可能的解决方案是“双生”轴:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(1, 3)
y = np.linspace(1, 3)
fig, ax1 = plt.subplots()
ax1.plot(x, y)
ax2 = ax1.twinx() # instantiate a second axes that shares the same x-axis
# set the new ylimits to the be the same as the other
ax2.set_ylim(ax1.get_ylim())
ax2.set_yticks([1, 2, 3])
fig.tight_layout() # otherwise the right y-label is slightly clipped
plt.show()
我想更改右侧 y 轴(但不是左侧)的刻度值。
这是一个 MWE:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [1, 2, 3])
ax.tick_params(axis="y", which="both", labelright="on")
ax.tick_params(axis="y", which="both", labelleft="on", labelright="on")
ax.set_yticks([1, 2, 3])
plt.show()
使用 set_yticks
命令我得到了两个轴上的行为:
作为参考,这里是默认报价:
我正在寻找类似
的东西ax.set_yticks([1, 2, 3], which='right')
这样我就可以在左轴上每 0.25 个刻度,在右轴上每 1 个刻度。有什么想法吗?
一种可能的解决方案是“双生”轴:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(1, 3)
y = np.linspace(1, 3)
fig, ax1 = plt.subplots()
ax1.plot(x, y)
ax2 = ax1.twinx() # instantiate a second axes that shares the same x-axis
# set the new ylimits to the be the same as the other
ax2.set_ylim(ax1.get_ylim())
ax2.set_yticks([1, 2, 3])
fig.tight_layout() # otherwise the right y-label is slightly clipped
plt.show()