我的matplotlib图中y轴的刻度文本有太多十进制数字。如何格式化文本以仅显示两位小数。 I.E.我想将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_
s,我已经尝试将它们转换为float
,但结果是相似的。
使用此格式。
ax.yaxis.set_major_formatter(matplotlib.ticker.FormatStrFormatter('%.2f'))