对于y轴上的每个刻度标签,我想改变:
label -> 2^label
我正在绘制日志日志数据(基数2),但我希望标签显示原始数据值.
我知道我可以获得当前的y标签 
ylabels = plt.getp(plt.gca(), 'yticklabels')
这给了我一个清单:<a list of 9 Text yticklabel objects>
每个都是一个<matplotlib.text.Text object at 0x...>
我在http://matplotlib.org/users/text_props.html查看了文本对象的文档, 但我仍然不确定更改每个文本标签中的字符串的正确语法是什么.
更改标签后,我可以使用以下方法在轴上设置它们:
plt.setp(plt.gca(), 'yticklabels', ylabels) 
tac*_*ell 10
如果要做到这一点你可以使用一般的情况下FuncFormatter(参见:
 matplotlib轴标签格式,imshow:标签作为图像索引的任意功能.Matplotlib set_major_formatter AttributeError的)
在你的情况下,以下应该工作:
import matplotlib as mpl
import matplotlib.pyplot as plt
def mjrFormatter(x, pos):
    return "$2^{{{0}}}$".format(x)
def mjrFormatter_no_TeX(x, pos):
    return "2^{0}".format(x)
ax = plt.gca()
ax.yaxis.set_major_formatter(mpl.ticker.FuncFormatter(mjrFormatter))
plt.draw()
荒谬的{}逃避是新式字符串的结果
| 归档时间: | 
 | 
| 查看次数: | 11716 次 | 
| 最近记录: |