当前位置: 首页 > 知识库问答 >
问题:

在不绘制对象的情况下将条目添加到matplotlib图例

姜钊
2023-03-14

是否有可能在matplotlib中添加一个条目到图例中而不绘制相应的对象

例如,我在一个图形上绘制了两组三条线。它们成对出现,所以我想用相应的颜色绘制它们,其中一个是虚线,另一个是实线。

import matplotlib.pyplot as plt
import numpy as np    
for i in range(1,4):
    line = plt.plot(i*np.arange(1,10), label=i)[0]
    plt.plot(-i*np.arange(1,10), ls='--', color=line.get_color(), label=-i)
plt.legend()

但是,与图例中的所有六个项目不同,(纯蓝色1、纯橙色2、纯绿色3、纯蓝色1、纯橙色2、纯绿色3),我希望有三个项目(纯蓝色1、纯橙色2、纯绿色3),然后有两个额外的项目来消除虚线与实线之间的歧义(纯黑色“正片”,黑色虚线“负片”)。

由于我没有绘制黑色实线/虚线,如何添加这两个条目?

共有1个答案

白浩气
2023-03-14

我在官网链接上看到了来自@JohanC评论的定制参考。是否符合你提问的意图?

import matplotlib.pyplot as plt
from matplotlib.lines import Line2D
import numpy as np

fig, ax = plt.subplots()

legend_elements = [Line2D([0], [0], color='steelblue', ls='--',lw=2, label='blue'),
                   Line2D([0], [0], color='orange', ls='--',lw=2, label='orange'),
                   Line2D([0], [0], color='yellowgreen', ls='--',lw=2, label='green'),
                   Line2D([0], [0], color='k', ls='-',lw=2, label='positives'),
                   Line2D([0], [0], color='k', ls='--', lw=2, label='negatives')]

ax.legend(handles=legend_elements, loc='upper left')

for i in range(1,4):
    line = plt.plot(i*np.arange(1,10))[0]
    ax.plot(-i*np.arange(1,10), ls='--', color=line.get_color())
    
plt.show()
 类似资料:
  • 如何在没有类(扩展)的情况下绘制对象?我找到了方法,但它不能绘制对象。

  • 问题内容: 我正在使用构建Web POST参数的方法,但是有一些值仅在它们不存在的情况下才想添加。 效果很好,但是如果我将变量设为可选,如何防止将其添加到参数中?像这样的东西(伪代码): 我希望这已经足够清楚了,有人知道如何解决吗? 问题答案: 创建初始字母后,您必须单独添加密钥: Python没有语法将键定义为条件键;如果您已经按顺序拥有所有内容,则可以使用dict理解: 但这不是很可读。 另一

  • 下面是关于如何绘制多色线的示例,我可以根据一些彩色地图绘制沿其长度改变颜色的线。为了给剧情添加一个传说,我添加了以下代码: 这会将图例添加到绘图中(下图),但图例中图标的颜色与线条的颜色完全不相关。这是向该绘图添加图例的错误方法,还是matplotlib的限制?

  • 问题内容: 我希望在不停止应用程序的情况下分析Java应用程序。我可以在应用程序运行时以某种方式添加Javaagent吗? 问题答案: 根据java.lang.instrument软件包的文档,应该是可能的。 VM启动后启动代理 一个实现可以提供一种机制,可以在VM启动之后的某个时间启动代理。有关如何启动的详细信息是特定于实现的,但通常应用程序已启动并且其主要方法已被调用。在虚拟机启动后实现支持启

  • 问题内容: 我有两个活动,我分别从这两个活动向Firestore添加数据。但是,每当我向Firestore添加第二个活动数据时,它就会覆盖第一个活动数据。我在以下两个活动中使用了以下代码: 如何停止覆盖?我想将两个“活动”数据保存在同一文件夹中。 问题答案: 我建议您再添加一个文档或集合,以便它可以为单个用户存储多个数据值。 您可以为两个活动创建文档参考: 或者,您可以为其创建一个子集合: 更多关

  • 问题内容: 今天,在浏览各种问题时,我遇到了一个问题,在我看来有点不可思议,为什么一个人要在上面加上a ,对于这种情况会不会有什么真正的原因,所以这只是微不足道的吗? 问题答案: 动画图像作为GUI的BG。我使用HTML来调整此尺寸(x3),但是如果它已经是所需的尺寸,则可以直接将其设置为标签的。 不知道它是否是“真正的”。这似乎是一个主观术语,需要更多说明。我从来没有使用过这种方法,只是想通了,