格式化字符串ticklabels matplotlib

时间:2015-05-11 23:10:10

标签: python matplotlib

我有一组在我的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,但只能抓住数字位置而不是标签本身。任何人都将不胜感激。

1 个答案:

答案 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