我有一个简单的X和Y值数据集,我在matplotlib中绘制.我的数据中的自变量是持续时间/时间δ(例如60秒,2小时,24小时,10天),在我的输入数据中始终表示为整数秒.我的问题是,matplotlib能否以人类可读的形式智能地设置持续时间轴标签?
例如,在比例的小端,希望将30秒简单地表示为"30秒".在规模较大的一端,显示"10天"而不是864000秒会更好.介于两者之间,最好在"分钟"和"小时"内读取标签.matplotlib是否有任何自动推断方法可以推断出人类可读的东西,持续时间跨越几个数量级?
理想情况下,我使用的任何方法都应该推广到跨越不同持续时间尺度的数据集,而不是针对一个输入数据集单独定制的图.
对于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)