使用 mpatches.Patch 自定义图例

2024-02-13

我使用以下代码创建自定义 matplotlib 图例。

import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
colors = ["g", "w"]
texts = ["Green Data Description", "RedData Description"]
patches = [ mpatches.Patch(color=colors[i], label="{:s}".format(texts[i]) ) for i in range(len(texts)) ]
plt.legend(handles=patches, bbox_to_anchor=(0.5, 0.5), loc='center', ncol=2 )

结果图例如下:

1 - 图例中的白色符号未显示,因为默认图例背景也是白色。如何将图例背景设置为其他颜色?

2-如何将图例中的矩形符号改为圆形?


尝试这个:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.patches as mpatches
from matplotlib.legend_handler import HandlerPatch
colors = ["g", "w"]
texts = ["Green Data Description", "RedData Description"]
class HandlerEllipse(HandlerPatch):
    def create_artists(self, legend, orig_handle,
                       xdescent, ydescent, width, height, fontsize, trans):
        center = 0.5 * width - 0.5 * xdescent, 0.5 * height - 0.5 * ydescent
        p = mpatches.Ellipse(xy=center, width=width + xdescent,
                             height=height + ydescent)
        self.update_prop(p, orig_handle, legend)
        p.set_transform(trans)
        return [p]


c = [ mpatches.Circle((0.5, 0.5), 1, facecolor=colors[i], linewidth=3) for i in range(len(texts))]
plt.legend(c,texts,bbox_to_anchor=(0.5, 0.5), loc='center', ncol=2, handler_map={mpatches.Circle: HandlerEllipse()}).get_frame().set_facecolor('#00FFCC')
plt.show()

output:

Update:

要画圆,请设置宽度等于高度,单位为mpatches.Ellipse

去掉外面的黑线,设置edgecolor="none" in mpatches.Circle

code:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.patches as mpatches
from matplotlib.legend_handler import HandlerPatch
colors = ["g", "w"]
texts = ["Green Data Description", "RedData Description"]
class HandlerEllipse(HandlerPatch):
    def create_artists(self, legend, orig_handle,
                       xdescent, ydescent, width, height, fontsize, trans):
        center = 0.5 * width - 0.5 * xdescent, 0.5 * height - 0.5 * ydescent
        p = mpatches.Ellipse(xy=center, width=height + xdescent,
                             height=height + ydescent)
        self.update_prop(p, orig_handle, legend)
        p.set_transform(trans)
        return [p]


c = [ mpatches.Circle((0.5, 0.5), radius = 0.25, facecolor=colors[i], edgecolor="none" ) for i in range(len(texts))]
plt.legend(c,texts,bbox_to_anchor=(0.5, 0.5), loc='center', ncol=2, handler_map={mpatches.Circle: HandlerEllipse()}).get_frame().set_facecolor('#00FFCC')
plt.show()

新图片:

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

使用 mpatches.Patch 自定义图例 的相关文章

  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • Django Rest Framework 是否有第三方应用程序来自动生成 swagger.yaml 文件?

    我有大量的 API 端点编写在django rest framework并且不断增加和更新 如何创建和维护最新的 API 文档 我当前的版本是 Create swagger yaml文件并以某种方式在每次端点更改时自动生成 然后使用此文件作
  • 嵌套列表的重叠会产生不必要的间隙

    我有一个包含三个列表的嵌套 这些列表由 for 循环填充 并且填充由 if 条件控制 第一次迭代后 它可能类似于以下示例 a 1 2 0 0 0 0 0 0 4 5 0 0 0 0 0 0 6 7 根据条件 它们不重叠 在第二次迭代之后 新
  • 如何从Python中的函数返回多个值? [复制]

    这个问题在这里已经有答案了 如何从Python中的函数返回多个变量 您可以用逗号分隔要返回的值 def get name you code return first name last name 逗号表示它是一个元组 因此您可以用括号将值括
  • PyQt 使用 ctrl+Enter 触发按钮

    我正在尝试在我的应用程序中触发 确定 按钮 我当前尝试的代码是这样的 self okPushButton setShortcut ctrl Enter 然而 它不起作用 这是有道理的 我尝试查找一些按键序列here http ftp ics
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 无法导入 langchain.agents.load_tools

    我正在尝试使用 LangChain Agents 但无法导入 load tools 版本 langchain 0 0 27 我尝试过这些 from langchain agents import initialize agent from
  • Django 视图中的“请求”是什么

    在 Django 第一个应用程序的 Django 教程中 我们有 from django http import HttpResponse def index request return HttpResponse Hello world
  • pandas - 包含时间序列数据的堆积条形图

    我正在尝试使用时间序列数据在 pandas 中创建堆积条形图 DATE TYPE VOL 0 2010 01 01 Heavy 932 612903 1 2010 01 01 Light 370 612903 2 2010 01 01 Me
  • Python - 如何确定解析的 XML 元素的层次结构级别?

    我正在尝试使用 Python 解析 XML 文件中具有特定标记的元素并生成输出 excel 文档 该文档将包含元素并保留其层次结构 我的问题是我无法弄清楚每个元素 解析器在其上迭代 的嵌套深度 XML 示例摘录 3 个元素 它们可以任意嵌套
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • python 中的“槽包装器”是什么?

    object dict 和其他地方的隐藏方法设置为这样的
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • pandas.read_csv 将列名移动一倍

    我正在使用位于的 ALL zip 文件here http www fec gov disclosurep PDownload do 我的目标是用它创建一个 pandas DataFrame 但是 如果我跑 data pd read csv
  • 如何将Python3设置为Mac上的默认Python版本?

    有没有办法将 Python 3 8 3 设置为 macOS Catalina 版本 10 15 2 上的默认 Python 版本 我已经完成的步骤 看看它安装在哪里 ls l usr local bin python 我得到的输出是这样的

随机推荐

  • 将工具提示保留在浏览器窗口内? (不使用插件)

    我的工具提示代码如下 HTML CSS a tooltip span display none padding 5px border 1px solid 000 background 999 position absolute color
  • 如何使用谷歌地图路径点进行交通

    我知道我们不允许使用谷歌地图 API 路径点进行 TRANSIT 有什么方法 可能 可以解决这个问题 让谷歌地图在路径点中找到指向多个地址的方向 但仅用于 TRANSIT 来自文档 https developers google com m
  • (a==1 && a==2 && a==3) 在 Java 中可以计算为 true 吗?

    我们知道它可以在 JavaScript 中 https stackoverflow com q 48270127 476716 但是在Java中是否可以在下面给出的条件下打印 成功 消息 if a 1 a 2 a 3 System out
  • 跨 pandas 行/回归线应用公式

    我正在尝试在数据框的行上应用公式来获取行中数字的趋势 下面的示例一直有效 直到部分 apply用来 df pd DataFrame np random randn 10 4 columns list ABCD axisvalues list
  • $.ajax删除请求在capybara-webkit中不发送数据参数

    我发现当我通过 capybara webkit 执行 ajax DELETE 请求时 它们没有向控制器发送数据参数 但是 当我使用 selenium 运行测试套件时 数据参数确实被发送 并且测试通过 我的代码如下所示 document on
  • 类型转换和类型断言有什么区别?

    之间的主要区别是什么 v t aType type assertion v aType t type conversion 我应该在哪里使用类型断言或类型转换 类型断言断言t 接口类型 实际上是一个aType and t将是一个aType
  • 以编程方式检测 Android 上是否安装了应用程序

    我已经为我的 Android 应用程序注册了一个 url 方案 假设 myapp host 在我的其他应用程序上 我可以使用 Intent 启动该应用程序 但如何在不启动它的情况下检查第一个应用程序是否已安装 在 iOS 中 这很简单 UI
  • Bokeh:使用复选框小部件隐藏和显示绘图

    我在将 Widget 回调与 Bokeh 一起使用时遇到一些困难 在复选框小部件的帮助下 我想显示 隐藏相应的绘图 与的区别这个问题 https stackoverflow com questions 38705123 using mult
  • Kafka 反序列化嵌套泛型类型

    给定一个这样的类 public class Message
  • 找到图像 src :包含?

    大家早 我有一个图像列表 如下所示 ul style display none li img src afx4000z navy icon 1 thumb jpg li li img src afx4000z green icon 1 th
  • AngularJs 完整的 Jquery 选择不起作用

    我正在尝试使用 Jquery 插件在 AngularJS 指令中操作 DOM 我不确定 AngularJs 是否使用完整版本的 Jquery 尽管完整版本脚本位于头部 而 AngularJs 脚本位于主体 所以理论上 AngularJS 应
  • 如何在 ClearCase 中创建某些项目或流的快照视图?

    我想获取可以在clearcase项目资源管理器中找到的某些流或项目的内容 2 1 cleartool descr l project myProject myPVob 通过一些 grep 您可以获得组件 可写或不可写 和策略的列表 如果您只
  • 在 C/C++ 中打印前导空格和零

    我需要在数字前打印一些前导空格和零 以便输出如下所示 00015 22 00111 8 126 在这里 我需要打印leading spaces当数字是even and leading zero when odd 我是这样做的 int i d
  • 应用程序脚本我的执行条目延迟/丢失

    最近 我的执行遇到了添加执行条目延迟的问题 Google Sheet 上的应用程序脚本将成功运行 基于输出 但执行日志中没有条目或条目延迟 10 分钟以上 更令人担忧的是 今天我收到一封自动生成的电子邮件 其中包含脚本错误 很抱歉 服务器发
  • 按主页按钮并从应用程序图标调用 onCreate 再次访问应用程序?

    我有一个离线在线应用程序 我发现其中有一个奇怪的问题 可能不是 但我不明白 应用程序的要求是 如果互联网可用 即使从启动应用程序或恢复 我也会调用网络服务并将数据存储在 sqlite 中 否则应用程序将保持离线模式 我有 2 个活动 第二个
  • 如何在 Excel 中通过 OleDB 使用命名范围?

    我正在尝试使用 ASP NET C 从 Excel 中的特定命名范围中提取数据 这是我试图提取的示例 我想要的是使用名称 RANGE NAMED 的 B C D 可以用 OleDB 做到这一点吗 此致 Alex 你可以试试这个代码 usin
  • Galaxy Nexus:采样更多传感器时,传感器采样率会变得更快

    我正在尝试从 Samsung Galaxy Nexus 带 Android 4 0 尽快读取传感器值 为此 我使用不同的传感器和采样率做了一些实验 并发现了一个非常奇怪的行为 当我只使用 Acc Sensor 时 采样率约为 50Hz 但是
  • Haskell 中的短路 (&&)

    最近一直困扰我的一个快速问题 Haskell 是否在返回布尔值的函数中执行所有等价测试 即使返回一个假值 例如 f a b a b 2 a b 2 如果第一个测试返回 false 是否会执行第二个测试 或者 Haskell 是否足够懒 不做
  • 如何更改数据表中日期列的日期格式?

    我正在从数据库填充数据表 它包含两个字段 DATE TIME 两个字段都是datetime column 我想遍历数据表并更改日期格式DATE列即dd MM yyyy int i 0 string d foreach DataRow dr
  • 使用 mpatches.Patch 自定义图例

    我使用以下代码创建自定义 matplotlib 图例 import matplotlib patches as mpatches import matplotlib pyplot as plt colors g w texts Green