2013-04-29 10 views
6

Figureの周りに境界線を追加する方法はわかりませんが、これはfigure.edgecolorパラメータまたはsavefig(edgecolor)しかし、これは動作していないようです。私はmatplotlib 1.1.1を使用しています。私は、このコードは数字の周りに赤い境界線を引くことを期待する:matplotlibは、plt.savefig()またはplt.figure()でedgecolorを設定した効果を見ることができません。

import matplotlib.pyplot as plt 
plt.plot([1,2,3]) 
plt.savefig('test.png', edgecolor='r', facecolor='g') 

私はそれが緑のFaceColorを持っているの図を見て、私は赤にEdgeColorが表示されませんか?

次のいずれかに動作しません:

import matplotlib.pyplot as plt 
plt.figure(edgecolor='r', facecolor='g') 
plt.plot([1,2,3]) 
plt.show() 

は再び私は緑のFaceColor、ない赤にEdgeColorを参照してください。私は間違って何をしていますか?

アイデア?

答えて

6

matplotlib.figure.Figure()のドキュメントによれば、図の端のlinewidthはデフォルトで0.0に設定されています。あなたのコードスニペットのいずれかで、この値を引き上げる場合は、edgecolorを視覚化することができます

import matplotlib.pyplot as plt 
plt.figure(linewidth=2) 
plt.plot([1,2,3]) 
plt.savefig('test.png', edgecolor='r', facecolor='g') 

または:

import matplotlib.pyplot as plt 
plt.figure(edgecolor='r', facecolor='g', linewidth=2) 
plt.plot([1,2,3]) 
plt.show() 

linewidth=0.0は良いデフォルトですが、それはより良いmatplotlib.pyplot.savefig()に文書化されなければなりません。

+0

私はそれが私が見落としていた何か簡単でなければならないことを知っていました。ありがとうございました。 – bobl2424

+0

ええ、もっと明確に文書化する必要があります。特に 'savefig()'は 'Figure()'の色の設定を上書きしますが、明らかに 'linewidth'の設定を上書きしてしまったので、私はしばらく時間をとっていました。 – fgb

+0

また、 'Colors()'を使って色を増やすこともできます:http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.colors – yPhil

関連する問題