将两个不同的条目放在图例中的同一标签下

Posted

技术标签:

【中文标题】将两个不同的条目放在图例中的同一标签下【英文标题】:Putting two different entries under same label in a legend 【发布时间】:2020-07-09 10:46:52 【问题描述】:

我用不同的数据集和趋势线绘制了一个图表。我想知道是否可以在同一个标​​签下有两个不同的条目而标签在图例中出现两次:

ax.plot(JD_inc, mag_inc, 'x', label = "Increasing Magnitude")
ax.plot(JD_dec, mag_dec, 'x', color = "forestgreen", label = "Decreasing Magnitude")

ax.plot(new_x_inc, new_y_inc, color = "orange", label = "Increasing Magnitude")
ax.plot(new_x_dec, new_y_dec, color = "crimson", label = "Decreasing Magnitude")


ax.errorbar(our_jul_day, our_mag, yerr = our_err, fmt = "x", color = "black", zorder = 10, label = "Our Data")

plt.legend()

是否也可以从“我们的数据”标签中删除错误栏?

这是我当前图表的图像:

那么,例如,是否有可能让橙色线和蓝色点在图例中基本上重叠?

【问题讨论】:

【参考方案1】:

根据link 中给出的HandlerTuple 示例,以下内容应该适用于您的情况:

jd_inc_data, = ax.plot(JD_inc, mag_inc, 'x', label = "Increasing Magnitude")
new_x_inc_data, = ax.plot(new_x_inc, new_y_inc, color = "orange", label = "Increasing Magnitude")

plt.legend([(jd_inc_data, new_x_inc_data)], ["Increasing Magnitude"])

【讨论】:

这已经成功了,谢谢,但是当我尝试为他的 dec_data 复制它时,我得到了错误:'NoneType' object has no attribute 'create_artists' 好吧,不用担心,我错过了变量名后面的逗号。谢谢!

以上是关于将两个不同的条目放在图例中的同一标签下的主要内容,如果未能解决你的问题,请参考以下文章

将标签放在 circlize 和弦图中的图例颜色条内

通过 matplotlib 中的列值更改图例条目

删除图例标签的属性

可变大小图形的图例位置

Matplotlib 图例

ggplot2:顶部图例键符号大小随图例键标签而变化