20

大きな値をグラフ化する例を次に示します。

import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = [1000, 1002, 1001, 1003, 1005]
plt.bar(x,y) 
plt.show()

y軸は0から始まるため、バーはすべて同じように見えます。plt.ylimを使用して手動で制限を設定できることは知っていますが、matplotlibが制限を自動的に(そしてスマートに)妥当な値(998-1008など)に設定し、おそらく軸の切れ目を表示する方法はありますか?

4

1 に答える 1

26

単純な代数を少し使うと、制限を修正するのに役立ちます。

import matplotlib.pyplot as plt
import math
x = [1,2,3,4,5]
y = [1000, 1002, 1001, 1003, 1005]
low = min(y)
high = max(y)
plt.ylim([math.ceil(low-0.5*(high-low)), math.ceil(high+0.5*(high-low))])
plt.bar(x,y) 
plt.show()

このようにして、y 値の違いを見つけ、それらを使用して y 軸に沿ってスケールを設定することができます。指定した値を取得して整数を確保するために、(math.floor ではなく) math.ceil を使用しました。

軸のブレークに関する限り、この例を見ることをお勧めします。

于 2012-06-27T00:29:51.327 に答える