格式化y轴刻度文本图

时间:2018-08-29 07:37:46

标签: python matplotlib

我的matplotlib图中y轴的刻度文本有太多的十进制数字。 如何格式化文本以仅显示两位小数。 即我想将10.39658602转换为10.40

我已经尝试过:

ax.get_yaxis().set_major_formatter(matplotlib.ticker.FormatStrFormatter('%5.2f'))

,但十进制数字设置为0(先前的数字变为10.00)。 这是一些图片。之前:

enter image description here

之后: enter image description here

编辑:我还提供了一个重现该问题的代码示例。

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。 data1data2data3data4是类型为ndarray的NumPy str_,我已经尝试将它们转换为{{ 1}},但结果相似。

1 个答案:

答案 0 :(得分:0)

使用这种格式。

ax.yaxis.set_major_formatter(matplotlib.ticker.FormatStrFormatter('%.2f'))