matplotlib无法在plt.savefig()或plt.figure()中看到设置edgecolor的效果

时间:2013-04-29 22:09:41

标签: python matplotlib

我无法弄清楚如何在图形周围添加边框,我的理解是这将是figure.edgecolor参数或savefig(edgecolor),但这似乎不起作用。我正在使用matplotlib 1.1.1。我希望这段代码在图上画一个红色边框:

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

当我看到这个图时,它有一个绿色的脸色,但我看不到红色的边缘颜色?

以下情况也不起作用:

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

我再次看到绿色的脸色,但没有红色的边缘色。我做错了什么?

有什么想法吗?

1 个答案:

答案 0 :(得分:7)

根据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()中更好地记录。