2013-04-29 3 views
6

Ich kann nicht herausfinden, wie man einen Rahmen um eine Figur hinzufügt, es ist mein Verständnis, dass dies die Figur.edgecolor wäre Parameter oder Savefig (EdgeColor), aber das scheint nicht zu funktionieren. Ich benutze Matplotlib 1.1.1. Ich würde dieser Code erwarten einen roten Rahmen um die Figur zu zeichnen:matplotlib kann den Effekt der Einstellung von edgecolor in plt.savefig() oder plt.figure() nicht sehen

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

Als ich in der Figur sehen sie eine grün facecolor hat, aber ich habe keinen roten edgecolor sehen?

Die folgende funktioniert auch nicht:

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

Wieder sehe ich die grüne facecolor, aber keine roten edgecolor. Was mache ich falsch?

Irgendwelche Ideen?

Antwort

6

Gemäß der Dokumentation von matplotlib.figure.Figure() ist der Rand der Figur linewidth standardmäßig auf 0.0 eingestellt. Sie können die edgecolor visualisieren, wenn Sie diesen Wert in einem der Code-Schnipsel bump up:

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

Oder:

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

linewidth=0.0 ist ein guter Standard, aber es sollte besser in matplotlib.pyplot.savefig() dokumentiert werden.

+0

Fantastisch, ich wusste, dass es etwas Einfaches sein musste, das ich übersah. Vielen Dank. – bobl2424

+0

Ja, es muss klarer dokumentiert werden. Ich brauchte eine Weile, um es herauszufinden, zumal 'savefig()' normalerweise die Farbeinstellungen von 'Figure()' überschreibt, aber anscheinend nicht den 'linewidth' Parameter. – fgb

+0

Beachten Sie auch, dass Sie mehr Farben verwenden können, indem Sie 'Colors()' verwenden: http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.colors – yPhil

Verwandte Themen