我的matplotlib图中y轴的刻度文本有太多的十进制数字。
如何格式化文本以仅显示两位小数。
即我想将10.39658602
转换为10.40
我已经尝试过:
ax.get_yaxis().set_major_formatter(matplotlib.ticker.FormatStrFormatter('%5.2f'))
,但十进制数字设置为0(先前的数字变为10.00
)。
这是一些图片。之前:
编辑:我还提供了一个重现该问题的代码示例。
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
lineObjects = plt.plot(epochs, data1, 'rs',
epochs, data2, 'b^',
epochs, data3, 'gv',
epochs, data4, 'ko', )
# also %.2f does not work as intended
ax.get_yaxis().set_major_formatter(matplotlib.ticker.FormatStrFormatter('%5.2f'))
plt.show()
我在Anaconda上使用Python 3.6。 data1
,data2
,data3
,data4
是类型为ndarray
的NumPy str_
,我已经尝试将它们转换为{{ 1}},但结果相似。
答案 0 :(得分:0)
使用这种格式。
ax.yaxis.set_major_formatter(matplotlib.ticker.FormatStrFormatter('%.2f'))