【问题标题】:Selective vertical whitespace in matplotlib legendmatplotlib 图例中的选择性垂直空格
【发布时间】:2016-06-24 17:58:15
【问题描述】:

我正在尝试在使用matplotlib.pyplot 生成的图例中创建一些额外的垂直空白。但是,希望这个额外的空白仅位于图例中的两个条目之间,而其余条目保持不变。我有一个 MWE 和它生成的图像,经过编辑以显示我想要额外空白的位置。

import matplotlib.pyplot as plt

plt.plot([0,1],[.2,.2],label = "A")
plt.plot([0,1],[.4,.4],label = "B")
plt.plot([0,1],[.6,.6],label = "C")
plt.plot([0,1],[.8,.8],label = "D")

plt.legend(loc='upper right',labelspacing=.3)
plt.ylim(0,1)

plt.show()

【问题讨论】:

    标签: python matplotlib legend


    【解决方案1】:

    您可能必须为此使用代理艺术家。这是一个例子:

    a, = plt.plot([0,1],[.2,.2],label = "A")
    b, = plt.plot([0,1],[.4,.4],label = "B")
    c, = plt.plot([0,1],[.6,.6],label = "C")
    d, = plt.plot([0,1],[.8,.8],label = "D")
    
    plt.legend([a,b,c,matplotlib.lines.Line2D([],[],linestyle=''),d],['A','B','C','','D'], loc='upper right',labelspacing=.3)
    plt.ylim(0,1)
    

    【讨论】:

    • 当我使用您的代码时,我的图例周围会出现一个框(这很好,我想要这个框)。尽管代码相同,为什么您的图像在图例周围没有框?
    • 我们的 matplotlibrc 文件matplotlib.org/users/customizing.html可能有所不同
    【解决方案2】:

    您可以在标签中使用\n

    请注意,标签以标记为中心,因此请使用 2 \n

    plt.plot([0,1],[.6,.6],label = "\nC\n")
    

    【讨论】:

      猜你喜欢
      • 2020-12-11
      • 1970-01-01
      • 2014-04-15
      • 2018-05-18
      • 1970-01-01
      • 2013-04-11
      • 2020-08-11
      • 2018-01-07
      相关资源
      最近更新 更多