我想在 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()
但这给了我一个清单matplotlib.text.Text
我不确定如何处理。我的目的是获取字符串形式的标签列表,添加新标签(在正确的位置),然后使用ax.xaxis.set_ticklabels(list_label)
以类似于该位置的方式。
这是我通常所做的,尽管我从未对这种方法完全满意。可能有更好的方法,无需调用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()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)