我有一组在我的x轴上是字符串的刻度标签,我希望能够得到 - >修改 - >设置它们。比方说,我有一个看起来像这样的情节:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(range(1,6), range(5))
plt.xticks(range(1,6), ['a','b','c','d','e']
我希望将x轴上的标签更改为['(a)','(b)','(c)','(d)','(e)']
最简单/最好的方法是什么?我尝试过这样的事情:
labels = ['(%s)' % l for l in ax.xaxis.get_ticklabels()]
ax.xaxis.set_ticklabels(labels)
但ax.xaxis.get_ticklabels()
返回matplotlib文本对象而不是字符串列表,我不知道如何修改它们。我也试过使用matplotlib.ticker.FuncFormatter
,但只能抓住数字位置而不是标签本身。任何人都将不胜感激。
答案 0 :(得分:5)
还有一层要解开:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(range(1,6), range(5))
plt.xticks(range(1,6), ['a','b','c','d','e'])
labels = ['(%s)' % l.get_text() for l in ax.xaxis.get_ticklabels()]
ax.xaxis.set_ticklabels(labels)
您的代码,但列表中的l.get_text()
存在l
。