我想将我的xtick和ytick值格式化为float中的两位小数,并在末尾添加一个“%”。我该怎么办?
x_sum = cm.sum(axis=0)*100
y_sum = cm.sum(axis=1)*100
plt.xticks(tick_marks, x_sum)
plt.yticks(tick_marks, y_sum)
目前,刻度线给了我长的十进制值。
从问题中可以看出,无论如何您都希望手动设置刻度线,因此您只需要设置刻度线标签的格式,
import numpy as np
import matplotlib.pyplot as plt
cm = np.sort(np.random.rand(64)).reshape((8,8))
tick_marks=np.arange(8)
plt.imshow(cm)
x_sum = cm.sum(axis=0)*100
y_sum = cm.sum(axis=1)*100
fmt = lambda x: "{:.2f}%".format(x)
plt.xticks(tick_marks, [fmt(i) for i in x_sum], rotation=90)
plt.yticks(tick_marks, [fmt(i) for i in y_sum])
plt.tight_layout()
plt.show()
对于自动百分比标签,matplotlib.ticker.PercentFormatter
很有意义:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import PercentFormatter
cm = np.sort(np.random.rand(64)).reshape((8,8))
plt.imshow(cm, extent=(0,80,0,80))
plt.gca().xaxis.set_major_formatter(PercentFormatter(decimals=2))
plt.gca().yaxis.set_major_formatter(PercentFormatter(decimals=2))
plt.gca().tick_params(axis="x",rotation=90)
plt.tight_layout()
plt.show()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句