添加自定义tick和lab

2024-05-15 13:10:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在matplotlib中添加一个自定义的主刻度和标签。一个典型的用法是在位置math.pi处添加一个带有标签"$\pi$"的标签。我的目标是保持其他记号不变:我想保留原来的主刻度和次刻度,格式是以前选择的,但是使用这个额外的记号和标签。我想出了一个方法(在这些论坛上找到了帖子)来添加勾号:

list_loc=list(ax.xaxis.get_majorticklocs())
list_loc.append(pos)
list_loc.sort()
ax.xaxis.set_ticks(list_loc)

我的问题是标签的问题。我试图用类似的方法检索标签ax.xaxis.get_majorticklabels(),但这给了我一个{}的列表,我不知道该如何处理。我的目的是将标签列表作为字符串,添加新标签(在正确的位置),然后以与位置类似的方式使用ax.xaxis.set_ticklabels(list_label)。在


Tags: 方法用法列表getmatplotlibpi标签ax
1条回答
网友
1楼 · 发布于 2024-05-15 13:10:23

这是我通常会做的,尽管我从来没有完全满意过这种方法。也许有更好的方法,不用调用draw()。在

fig,ax=plt.subplots()
x=linspace(0,10,1000)
x.plot(x,exp(-(x-pi)**2))
plt.draw() # this is required, or the ticklabels may not exist (yet) at the next step
labels = [w.get_text() for w in ax.get_xticklabels()]
locs=list(ax.get_xticks())
labels+=[r'$\pi$']
locs+=[pi]
ax.set_xticklabels(labels)
ax.set_xticks(locs)
ax.grid()
plt.draw()

enter image description here

相关问题 更多 >