使用 matplotlib 添加自定义刻度

Gin*_*Gin 5 python matplotlib

我想在matplotlib图中添加自定义刻度。目前,我使用以下命令添加刻度(例如):

axis.set_yticks([0.5,0.6,0.7,0.8,0.9,1.0])
Run Code Online (Sandbox Code Playgroud)

我希望能够做到:

axis.set_yticks({ 1.0 : "some custom text"})
Run Code Online (Sandbox Code Playgroud)

因此1.0,在该位置some custom text显示的是 , 。

注意:我4年前就发现了这个问题。我问的问题基本上是相同的,希望有更好的方法: 添加自定义刻度和标签

Imp*_*est 6

另一个问题及其答案仍然有效。您不能使用字典来设置刻度。

然而在这种情况下,您的要求似乎有所不同。虽然链接的问题要求保持刻度不变,但在这里您无论如何都想手动设置刻度。这将需要设置刻度刻度标签,但随后允许在设置标签时将字典中的任何键替换为相应的值。

import matplotlib.pyplot as plt

fig, ax = plt.subplots()

ticks = [0.5,0.6,0.7,0.8,0.9,1.0]
ax.set_yticks(ticks)

dic = { 1.0 : "some custom text"}
labels = [ticks[i] if t not in dic.keys() else dic[t] for i,t in enumerate(ticks)]
## or 
# labels = [dic.get(t, ticks[i]) for i,t in enumerate(ticks)]

ax.set_yticklabels(labels)

plt.tight_layout()
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述