我试图比较两个不同模型的不同字段,并且每个字段的可接受值是不同的,即,一个字段可以取百万作为值,而另一个字段可以取100作为最大值。我想比较同一条形图中的所有字段。
field1 | field2 | field3
Mod1 | 468 | 28,000 | 800,000,000
Mod2 | 162 | 2,000 | 228,000,000
我正在考虑采用Mod2相对于Mod1的百分比(并将Mod1值视为100%)并绘制条形图。这样,我们可以比较Mod2值的小Mod2值和所有不同的字段可以舒适地坐在同一个图表中(最大值为100)。在栏顶上,提到实际值。
还有其他经典方法吗?另外,如何使用python matplotlib完成上述想法?
答案 0 :(得分:2)
根据appropriate section of the matplotlib tutorial by Nicolas P. Rougier中给出的示例,快速解决方案是:
import numpy as np
import matplotlib.pylab as plt
mod1 = np.array([ 468, 28000, 800000000 ])
mod2 = np.array([ 162, 2000, 228000000 ])
proc = mod2.astype(float) / mod1.astype(float)
for ii, bar in enumerate(proc):
plt.bar(ii, bar)
plt.text(ii + 0.4, bar + 0.01, "%.2f" % bar, ha='center', va='bottom')
plt.ylim(0, 1.0)
plt.show()
轴刻度,颜色等,您可以根据需要轻松微调。