2016-09-01 13 views
0

私は2行とドットをプロットしています.X軸は日付範囲です。ドットは最も重要ですが、プロットの境界に表示されます。私はドットの位置がより見えるように、プロットをさらに右に "展開"したい。 つまり、Y軸の値に新しい値を追加せずにX軸を拡張したいとします。しかし、私はいくつかの日付をXの値に追加するだけで、 "xとyの次元は等しくなければならない"というエラーが出ます。私はYにいくつかのnp.NaN値を追加して、次元が等しくなるようにしようとしましたが、「整数が必要です」というエラーが発生します。 私のプロット: enter image description here マイコード:プロットを拡大してプロットを展開しないでください。

fig1 = plt.figure() 
ax1 = fig1.add_subplot(111) 
plot_x = train_original.index.values 
train_y = train_original.values 
ax1.plot(plot_x, train_y, 'grey') 
x = np.concatenate([np.array([train_original.index.values[-1]]), test_original.index.values]) 
y = np.concatenate([np.array([train_original.dropna().values[-1]]), test_original.dropna().values]) 
ax1.plot(x, y, color='grey') 
ax1.plot(list(predicted.index.values), list(predicted.values), 'ro') 
ax1.axvline(x=train_end, alpha=0.7, linestyle='--',color='blue') 
plt.show() 

答えて

2

だけxlim()を変更。次のようなものがあります。

xmin, xmax = plt.xlim() # return the current xlim 
plt.xlim(xmax=xmax+1) 
3

これを行うにはいくつかの方法があります。

既存のxlimの知識がなくても簡単に自動でこれを行う方法は、ax.marginsを使用することです。これにより、プロットのいずれかの側にデータ限界の一定割合が追加されます。例:

ax.margins(x=0.1) 

は、プロットの両端に現在のx範囲の10%を追加します。

もう1つの方法は、ax.set_xlimを使用して明示的にx制限を設定することです。

関連する問題