【问题标题】:matplotlib can not see the effect of setting edgecolor in plt.savefig() or plt.figure()matplotlib 看不到在 plt.savefig() 或 plt.figure() 中设置 edgecolor 的效果
【发布时间】:2013-04-29 22:09:41
【问题描述】:

我不知道如何在图形周围添加边框,据我了解,这将是 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()

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

有什么想法吗?

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    根据matplotlib.figure.Figure()的文档,图形的边缘linewidth默认设置为0.0。如果您在任一代码 sn-ps 中提高此值,您可以可视化 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() 中。

    【讨论】:

    • 太棒了,我知道它一定是我忽略的一些简单的东西。谢谢。
    • 是的,需要更清楚地记录。我花了一段时间才弄清楚,特别是因为savefig() 通常会覆盖来自Figure() 的颜色设置,但显然不是linewidth 参数。
    • 另请注意,您可以使用Colors() 使用更多颜色:matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.colors
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 2020-09-30
    相关资源
    最近更新 更多