2017-04-01 1 views
0

下記の表を見てください。この図では、中心座標を(45、0)にして円に描画します。しかし、あなたが見るように、チャートの下限はゼロで、私の円の半分は表示されません。だから、私はこのチャートを少し下に拡張する必要があります。このマージン(ax.margins())の「マージン」メソッドは機能しません。このチャートのボトムラインはゼロで、ゼロを掛けた数値はゼロになります。Matplotlibのマージン

注:ax.set_ylim(...)やax.set_yticks(...)などの返信は投稿しないでください。私はこのような問題のための一般的な解決策を探しています。問題の

Code 
import matplotlib.pyplot as plt 
import numpy as np 

values = np.array([0.00388632352941, 0.00375827941176, 0.00355033823529,  0.00328273529412, 0.00294677941176, 0.00272142647059, 0.00246463235294,  0.00227766176471, 0.00213151470588, 0.00202594117647, 0.00183544117647,  0.00162102941177, 0.00148372058824, 0.00128380882353, 0.00112252941176,  0.000931544117647, 0.000786573529412, 0.000658220588235, 0.000584485294118,  0.000524044117647, 0.000562485294118, 0.000716441176471, 0.000872617647059,  0.00109039705882, 0.00124138235294, 0.00136894117647, 0.00143985294118,  0.00134760294118, 0.00121794117647, 0.00112772058824, 0.00109435294118,  0.00102432352941, 0.00101069117647, 0.00102417647059, 0.00104895588235,  0.00101776470588, 0.00101494117647, 0.000885558823529, 0.00078075,  0.000752647058824, 0.000667691176471, 0.000593220588236, 0.000658647058823,  0.000742117647059, 0.000651470588235, 0.000604647058824, 0.000584573529412,  0.00049530882353, 0.000281235294118, 0.000355029411765]) 
fig, ax = plt.subplots() 
ax.bar(np.arange(values.shape[0]), values) 
plt.show() 

enter image description here

+0

サークルがどのように大きなわかりません。つまり小さい場合は、その円のクリッピングをオフにします。すなわち 'clip_on = False'を追加します。 – klimaat

+0

私はそれを試みましたが、結果はありません。 –

答えて

1

そこにはサークルがないので、私の答えは、どちらかのいずれかのサークルが含まれていません。 ymarginは、データの各側に追加する領域の割合です

プロットのデータの周りにいくつかのスペースを持つために、あなたは、ax.margins(y=ymargin)を使用することができます。私。データが0から1になり、余白のymargin = 0.1を追加すると、イルミットは(-0.1, 1.1)になります。 (これは、1つの制限がゼロかどうかに依存しません)

デフォルトでは、これはバープロットでは機能しません。一般的に、バーがどこかで始まるのは望ましくありません下の軸とは対照的に、空気である。この動作は、use_sticky_edgesというフラグを使用して調整されます。このフラグをFalseに設定すると、軸の両端に適用されている余白の動作を取り戻すことができます。有効にするには、その後ax.autoscale_viewに電話する必要があります。

import matplotlib.pyplot as plt 
import numpy as np 

values = np.array([3.89, 3.76, 3.55, 3.28, 2.95, 2.72, 2.46, 2.28, 2.13, 2.03, 1.84, 
        1.62, 1.48, 1.28, 1.12, 0.93, 0.79, 0.66, 0.58, 0.52, 0.56, 0.72, 
        0.87, 1.09, 1.24, 1.37, 1.44, 1.35, 1.22, 1.13, 1.09, 1.02, 1.01, 
        1.02, 1.05, 1.02, 1.01, 0.89, 0.78, 0.75, 0.67, 0.59, 0.66, 0.74, 
        0.65, 0.60, 0.58, 0.50, 0.28, 0.36]) 

fig, ax = plt.subplots() 
ax.bar(np.arange(values.shape[0]), values) 

ax.margins(y=0.3) 
ax.use_sticky_edges = False 
ax.autoscale_view(scaley=True) 
plt.show() 

enter image description here