2016-10-24 10 views
1

挨拶、matplotlibのプロットの外側bgの色を設定するには

matplotlibのプロットのOUTER色を変更したいと思います。私は内側のbgの色を変更する方法の多くの例をたくさん見つけることができますが、外側のbgの色は変更を拒否します。

画像の白い部分は、「外側」の背景を意味します。極端な外側の色は、白を拘束するだけで、スタックオーバーフローの背景と混ざり合わず、プロット/チャートの一部ではありません。

Chart

私はそれを変更するset_facecolor()を使用して試してみましたが、それは動作しません。

# Setting up data 
x = list(history['daily'].keys())[-30*months:] 
x_av = list(history['average'].keys())[-30*months:] 
y = list(history['daily'].values())[-30*months:] 
y_av = list(history['average'].values())[-30*months:] 

# Setting up figure 
fig = pyplot.figure() 
fig.set_figheight(6) 
fig.set_figwidth(12) 

# Formatting figure 
fig.patch.set_antialiased(True) 

# Setting up axis 
ax = fig.add_subplot(111, axisbg='#2e3136') 
ax.plot(x, y, '#e1bb34', x_av, y_av, '#b2dbee') 

# Formatting axis 
ax.get_yaxis().grid(color='#3e4146', linestyle='-') 
ax.get_xaxis().grid(color='#3e4146', linestyle='-') 

ax.spines['bottom'].set_color('#1e2124') 
ax.spines['top'].set_color('#1e2124') 
ax.spines['left'].set_color('#1e2124') 
ax.spines['right'].set_color('#1e2124') 

ax.get_yaxis().set_major_formatter(ticker.FuncFormatter(lambda _y, p: '{:,}'.format(_y))) 
ax.get_xaxis().set_major_formatter(ticker.FuncFormatter(lambda _x, p: datetime.fromtimestamp(_x/1000.0).strftime('%b %d'))) 

[i.set_color('white') for i in pyplot.gca().get_xticklabels()] 
[i.set_color('white') for i in pyplot.gca().get_yticklabels()] 

buf = BytesIO() 
fig.savefig(buf, format='png', bbox_inches='tight') 
pyplot.close() 
buf.seek(0) 

答えて

2

あなたはsavefigにkwargとしてfacecolorを設定することができるはず、これはイメージが書き込まれるとき、それが設定されていることを確認します。軸から色を引っ張って

fig.savefig(buf, format='png', bbox_inches='tight', facecolor='#2e3136') 

fig.savefig(buf, format='png', bbox_inches='tight', facecolor=ax.get_axis_bgcolor()) 
+0

それは感謝でした!本当に愚かなことは、図の初期設定中に面ファセットを設定するオプションを使用するが、保存については完全に無視するということです – Cole

関連する問題