1

2つの異なるモデルの異なるフィールドを比較しようとしていますが、各フィールドの許容値が異なります。つまり、1つのフィールドは値として百万を取り、別のフィールドは最大値として100を取ります。同じ棒グラフのすべてのフィールドを比較したいと思います。

       field1  | field2  | field3
Mod1 | 468     | 28,000  | 800,000,000
Mod2 | 162     |  2,000  | 228,000,000

私は、Mod1に対するMod2のパーセンテージを取り(そしてMod1の値を100%として扱う)、バーを描くことを考えています。このようにして、Mod2値がMod1値に対してどれほど小さいかを比較でき、すべての異なるフィールドを同じチャートに快適に配置できます(最大y値は100です)。バーの上に、実際の値を記載します。

これを行う他の古典的な方法はありますか?また、python matplotlibを使用して上記のアイデアをどのように行うことができますか?

4

1 に答える 1

2

Nicolas P. Rougierによるmatplotlibチュートリアルの適切なセクションに示されている例に基づくと、簡単な解決策は次のようになります。

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()

軸の目盛り、色など、必要に応じて簡単に微調整できます。

于 2013-02-20T20:05:04.080 に答える