Python 是否有方法将空条目添加到Matplotlib中的图例中?

Python 是否有方法将空条目添加到Matplotlib中的图例中?,python,graph,matplotlib,legend,Python,Graph,Matplotlib,Legend,我想在python的matplotib绘图中为图例添加一个空格。我在图例中有奇数个条目,它当前看起来像: _________________________________________________________________ | handle1 - label1 handle3 - label3 handle5 - label5 | | handle2 - label2 handle4 - label4

我想在python的matplotib绘图中为图例添加一个空格。我在图例中有奇数个条目,它当前看起来像:

 _________________________________________________________________
|  handle1  -  label1   handle3  -  label3   handle5  -  label5  |
|  handle2  -  label2   handle4  -  label4                       |
但是,数据在逻辑上与控件成对分组,因此如果它看起来像这样会更好:

 _________________________________________________________________
|  handle1  -  label1   handle2  -  label2   handle4  -  label4  |
|                       handle3  -  label3   handle5  -  label5  |
在数据集上自动运行for循环期间生成图例:

for [folder1,folder2, label] in folder_list:
    parse_folder([folder1,folder2])
    color = next(colorgen)
    marker = next(markergen)
    ax1.errorbar(percent[0],percent[1], yerr=per_std, c=color, fmt=marker, label=label)
    if label == 'Flat Plate':
        print 'tripped'
        ax1.plot(np.NaN, np.NaN, '-', color='none', label=' ')
然后在最后打电话

leg = ax1.legend(loc='lower left',fancybox=True,prop={'size':fontsize-2},ncol=4,bbox_to_anchor=(-0.1, -0.315))

有没有办法将此空白点插入图例?

您可以定义一条假白线

l = Line2D([0],[0],color="w")
然后绘制数据并将线/标记保存在变量中

f = figure()
ax = f.add_subplot(111)

l1, = ax.plot(1*arange(10))
l2, = ax.plot(2*arange(10))
l3, = ax.plot(3*arange(10))
l4, = ax.plot(4*arange(10))
l5, = ax.plot(5*arange(10))
最后,调用
legend
,如下所示

ax.legend((l1,l,l2,l3,l4,l5),("label1","","label2","label3","label4","label5"),
           loc='upper center',fancybox=True,ncol=3)
其中,每条线/标记与不同的标签相关联。在图例中需要空白的地方插入假白线
l
,并将空白字符串与之关联

希望能有所帮助。

Farenorth的解决方案(在Op评论中给出)给出了最清晰的答案

在需要空白点的位置添加一个额外的命令,使用<代码> NP.楠<代码>数据,并将颜色设置为<代码> No.< /代码>。p>

ax1.plot(np.NaN, np.NaN, '-', color='none', label='')

注意,这必须是相同的类型,因为用于自动生成图例的方法顺序地获得不同的绘图类型,即所有的绘图,然后所有的错误栏等,所以空白条目需要保持相同的类型以保持函数调用的顺序。

一个更完整的示例代码——如何获得您不想要的图例,或者包括你尝试过的东西,都会很有用。你有没有尝试过<代码> AX1.TRAP(NP.NANN,NP.NAN','-',颜色= 'NON',Label= ''')/COD>?这几乎是起作用的,除了某些原因,创建的空白点永远是传说中的第一件事,不管我在这里放的是情节命令。其他一切都是按通话顺序进行的。如果你抓住电话线手柄,你就可以强行下单。同样,一个更完整的示例也会有所帮助。这些线是在for循环中绘制的,因此,挂起句柄不是一个选项。在循环中打印某些内容并不意味着无法挂起句柄,正如在循环中计算某些内容意味着无法生成结果列表一样。我更愿意对空行使用
matplotlib.lines.Line2D([],[],color=“none”)