更改 matplotlib pyplot 图例中线条的线宽[重复]

2023-12-20

我想更改 pyplot 图例中的线条样本的厚度/宽度。

图例中的线样本的线宽与它们在图中表示的线相同(因此,如果线y1 has linewidth=7.0,图例对应的y1标签上也会有linewidth=7.0).

我希望图例线比图中的线更粗。

例如,以下代码生成以下图像:

import numpy as np
import matplotlib.pyplot as plt

# make some data
x = np.linspace(0, 2*np.pi)

y1 = np.sin(x)
y2 = np.cos(x)

# plot sin(x) and cos(x)
fig = plt.figure()
ax  = fig.add_subplot(111)
ax.plot(x, y1, c='b', label='y1',linewidth=7.0)
ax.plot(x, y2, c='r', label='y2')

leg = plt.legend()
plt.show()

我想设置y1图例中的标签linewidth=7.0,而y1图中的线条具有不同的宽度(linewidth=1.0).

相关问题有更改的答案linewidth图例边界框通过leg.get_frame().set_linewidth(7.0)。这不会改变linewidth行的within传奇。


如果您只想更改图例框中的线宽,@ImportanceOfBeingErnest 的答案很好。但我认为它有点复杂,因为您必须在更改图例线宽之前复制手柄。此外,它不能改变图例标签的字体大小。以下两种方法不仅可以更改线宽,还可以更简洁地更改图例标签文本字体大小。

Method 1

import numpy as np
import matplotlib.pyplot as plt

# make some data
x = np.linspace(0, 2*np.pi)

y1 = np.sin(x)
y2 = np.cos(x)

# plot sin(x) and cos(x)
fig = plt.figure()
ax  = fig.add_subplot(111)
ax.plot(x, y1, c='b', label='y1')
ax.plot(x, y2, c='r', label='y2')

leg = plt.legend()
# get the individual lines inside legend and set line width
for line in leg.get_lines():
    line.set_linewidth(4)
# get label texts inside legend and set font size
for text in leg.get_texts():
    text.set_fontsize('x-large')

plt.savefig('leg_example')
plt.show()

Method 2

import numpy as np
import matplotlib.pyplot as plt

# make some data
x = np.linspace(0, 2*np.pi)

y1 = np.sin(x)
y2 = np.cos(x)

# plot sin(x) and cos(x)
fig = plt.figure()
ax  = fig.add_subplot(111)
ax.plot(x, y1, c='b', label='y1')
ax.plot(x, y2, c='r', label='y2')

leg = plt.legend()
# get the lines and texts inside legend box
leg_lines = leg.get_lines()
leg_texts = leg.get_texts()
# bulk-set the properties of all lines and texts
plt.setp(leg_lines, linewidth=4)
plt.setp(leg_texts, fontsize='x-large')
plt.savefig('leg_example')
plt.show()

上述两种方法产生相同的输出图像:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改 matplotlib pyplot 图例中线条的线宽[重复] 的相关文章

随机推荐

  • 如何解析“Build:‘Promise’仅指一种类型,但在此处用作值。”

    在打字稿中 我收到构建错误 提示 Build Promise 仅指类型 但在此处用作值 我的项目目标是 ES5 从这个帖子中 我可以通过将其更改为 ES6 来解决该问题 有没有办法在不改变目标的情况下解决问题 typescript 错误 T
  • 从 Swagger 文档生成 Yaml 或 Json 文件

    我使用 swagger springmvc 注释开发了一些由 swagger 记录的 Rest Web 服务 现在 我想使用 swagger editor 生成客户端 Rest Web 服务代码 但 swagger editor 需要 Ya
  • Java ME 双空格中的字符串替换

    如何在 Java ME 中将 a b 替换为 a b The replace 方法不接受字符串 只接受字符 由于双空格包含两个字符 我想我有一个小问题 你觉得这个怎么样 我自己尝试过一个 private String replace Str
  • Windows 上 Python 的长路径

    我在 Windows 下运行 Python 编程时遇到问题 我需要使用长度超过 256 个或任何限制字符的文件路径 现在 我基本上阅读了两种解决方案 使用 kernel32 dll 中的 GetShortPathName 并以这种方式访问
  • C# ValueTuple 属性命名

    我正在尝试 C 中的 ValueTuple 类 我对属性命名有疑问 让我们看看 如果实例化一个 ValueTuple 并声明该对象 如下所示 var tuple1 Name Name1 Age 25 我们可以命名属性 但是 像这样 Valu
  • 将 .plist 文件与 iCloud 同步

    我正在尝试弄清楚如何同步 Mac 沙盒应用程序中 应用程序支持 文件夹中的 plist 文件 我知道我可以使用 iCloud 键值存储 但每个应用程序有 64KB 的限制 这可能会或可能不会达到 具体取决于用户向应用程序添加了多少内容 我已
  • Lucene排名-如何使用新的4.0评分模型

    我正拼命地尝试在 Lucene 中实现一项新功能 所以我向您求助 基本上 在此 JIRA ISSE 中 一些额外的评分模型已添加到 Lucene 中 https issues apache org jira browse LUCENE 29
  • MongoDB 聚合不同文档中数组中的项目数?

    这是我的 MongoDB 集合架构 company String model String tags String 我需要聚合它 以便得到以下输出 id company Lenovo model T400 tags tag SomeTag
  • 注入的依赖项应该是公开访问的还是私有的?

    是否应该将依赖项存储到具有私有 setter 和公共 getter 的私有字段或属性 这适用于构造函数 DI 需要明确的是 在属性示例中 我不希望将它们添加到随附的接口中 除非有意义 即它们仅在实现类型中可见 interface IFoo
  • 通配符扩展的 Java 通用类型仅允许添加 null

    我正在使用下面的代码并尝试添加 CHild 对象是列表 List
  • 编辑新创建用户的注册表值

    我有一个 NET 应用程序 它创建一个新的本地用户 如下所示 var principalContext new PrincipalContext ContextType Machine var userPrincipal new UserP
  • 如何使用 svnX 将 *.a 文件添加到存储库中?

    似乎 svnX 默默地忽略所有 a 文件 但是我想将一些库添加到存储库中 如何使用 svnX 来做到这一点 我发现我必须编辑我的 subversion config 文件 取消注释 global ignores 行并删除 a 文件类型 之后
  • 如何在 Python 中前向声明/原型化函数? [复制]

    这个问题在这里已经有答案了 如何在类似于 C 的通用 Python 程序中构建方法原型 Prototype Do Python prototyping writeHello Gives an error as it was not defi
  • Spark 执行有时会卡在 Exchange.scala:44 的 mapPartitions 处

    我正在运行一个Spark两节点独立集群上的作业 v 1 0 1 Spark执行经常卡在任务mapPartitions处Exchange scala 44 这发生在我工作的最后阶段 打电话给saveAsTextFile 正如我对 Spark
  • Java 注释中的 /** 和 /*

    有什么区别 comment and comment 在Java中 我什么时候应该使用它们 第一种形式称为Javadoc http en wikipedia org wiki Javadoc 当您为代码编写正式的 API 时 可以使用它 这些
  • F# 中的列表理解与高阶函数

    我有SML背景 对高阶函数感觉很舒服 但我真的不明白列表理解的想法 是否存在列表理解比高阶函数更适合的情况List反之亦然 我听说列表理解比高阶函数慢 在编写性能关键函数时我应该避免使用它吗 为了举例 请看一下在 F 中高效投影列表列表 h
  • SQL Server通过脚本管理列描述

    有没有办法通过脚本更改 更新和删除 删除列描述 I use sp addextendedproperty添加描述 但不允许更新 当我尝试使用相同的 sp 更新现有描述值时 它会显示类似 描述属性已存在 之类的内容 改变或删除 创建类似的解决
  • RecyclerView.Adapter 内的 onActivityResult 未使用

    我在适配器内有一个按钮 可以进入画廊 MyAdapter extends RecyclerView Adapter
  • 自定义数据类型在设备之间不同步

    我正在尝试使用 Google Fit API 来存储自定义数据类型 我可以在单个设备上很好地插入和检索它们 但是当我在不同设备上登录同一个 Google 帐户时 数据不存在 我可以从每个设备创建和检索数据 但它们都保留自己的数据 并且不通过
  • 更改 matplotlib pyplot 图例中线条的线宽[重复]

    这个问题在这里已经有答案了 我想更改 pyplot 图例中的线条样本的厚度 宽度 图例中的线样本的线宽与它们在图中表示的线相同 因此 如果线y1 has linewidth 7 0 图例对应的y1标签上也会有linewidth 7 0 我希