在 matplotlib/seaborn 中向箱线图添加图例

2023-12-06

我是Python新手。

我使用以下代码在 matplotlib/seaborn 中生成了一个箱线图(带有群图叠加)。我现在想添加一个遵循每个框的配色方案的图例。我在网上找到的许多解决方案似乎不适用于这种特定类型的图表(例如,仅适用于分组箱线图).

当我尝试实现建议的代码时here我收到错误消息。

enter image description here

非常感谢所有的输入!

# Import libraries and modules

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

# Set seaborn style.

sns.set(style="whitegrid", palette="colorblind")

# Load summary tidy data.

tidy = pd.read_csv('tidy.csv')

# Define plots for tidy data

fig, ax = plt.subplots(figsize=(10,6))
ax = sns.boxplot(x='header1', y='header2', data=tidy, order=["header1", "header2"])
ax = sns.swarmplot(x="header1", y="header2", data=tidy, color=".25", order=["header1", "header2"])
labels = [item.get_text() for item in ax.get_xticklabels()]
labels[0] = 'header1'
labels[1] = 'header2'
ax.set_xticklabels(labels)
ax.legend(loc='best')

我正在使用的数据示例。

Object,Metric,Length
MT1,B2A1,3.57675
MT1,B2A2,2.9474600000000004
MT1,B2A3,2.247772857142857
MT1,B2A4,3.754455
MT1,B2A5,2.716282
MT1,B2A6,2.91325
MT10,B2A1,3.34361
MT10,B2A2,2.889958333333333
MT10,B2A3,2.22087
MT10,B2A4,2.87669
MT10,B2A5,1.6745005555555557
MT12,B2A1,3.3938900000000003
MT12,B2A2,2.00601
MT12,B2A3,2.1720200000000003
MT12,B2A4,2.452923333333333

The no handles with labels found to put in the legend错误是由于调用ax.legend()而您的两位艺术家(箱线图和群图)没有标签。

sns.boxplot是基于matplotlib的boxplot and sns.swarmplot on scatter,所以你需要的就是分别给他们一个labels and label争论。

ax = sns.boxplot(..., labels=["Metric", "Length"])
ax = sns.swarmplot(..., label="something goes here")

或者,根据this你可以保持seaborn部分不变并摆弄:

handles, _ = ax.get_legend_handles_labels()          # Get the artists.
ax.legend(handles, ["label1", "label2"], loc="best") # Associate manually the artists to a label.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 matplotlib/seaborn 中向箱线图添加图例 的相关文章

  • matplotlib中有制作散点图矩阵的函数吗?

    散点图矩阵示例 matplotlib pyplot中有这样的函数吗 对于那些不想定义自己的函数的人来说 Python 中有一个很棒的数据分析库 称为Pandas http pandas pydata org 在那里可以找到分散矩阵 http
  • 如何在 pywebview 中使无框窗口可拖动?

    我最近一直在使用 pywebview 和 Flask 来开发桌面应用程序 我想使用无框窗口功能并创建自己的标题栏 但问题是我不知道如何使该无框窗口可拖动 文档说它可以通过拖动任何点来移动 但对我来说情况并非如此 有任何想法吗 拖动区域 ht
  • 贝塞尔曲线python的递归函数

    我被要求设计一个名为 Bezier 的递归函数 其参数是给定点的列表 以及必须评估的点 它返回贝塞尔曲线中由点列表的控制点定义的点 这是我所做的算法 def Bezier point list t if len point list 1 r
  • 命令错误,退出状态 1: python setup.py Egg_info 检查日志以获取完整的命令输出 - 通过 pip 安装 auto-py-to-exe 时

    我正在尝试在与我通常通过 pip 使用不同的 Windows 设备上下载 auto py to exe 但是 当运行时 我收到错误 抱歉 它太长了 ERROR Command errored out with exit status 1 c
  • pandas 支持 DataFrame 的哪些绘图后端?

    pandas 确实允许与第三方一起绘图绘制后端 https pandas pydata org pandas docs stable development extending html plotting backends 我知道matpl
  • 传递到 Flask 的可能路线列表?

    我正在学习 Flask 有一个关于动态路由的问题 是否可以传入接受的路由列表 我注意到any转换器具有潜力 但很难找到使用中的示例 基本上我有不同的端点组 它们应该在它们之间触发相同的操作 这就是我的意思 cities New York L
  • 如何使用判别函数绘制 3 个类别之间的决策边界

    我有 3 个判别函数 将 2D 空间划分为 3 个区域 我想绘制这些区域之间的决策边界 我不知道如何在 python 中使用 matplotlib meshgrid 来做到这一点 对于2个判别函数 过程很简单 我计算值为 0 的函数和等高线
  • 使用具有阿拉伯字符的 json.dumps 将字典转换为 json [重复]

    这个问题在这里已经有答案了 我有一本包含阿拉伯语单词的字典 例如 data name name print json dumps data file open data json a encoding utf 8 Output name u
  • 导入pygame时出错

    我已经使用以下命令通过 Anaconda 安装了 pygame conda install channel https conda anaconda org kne pygame 然后我尝试导入 pygame 并收到以下错误 Traceba
  • PyCharm 项目文件消失了

    我当时正在做一个 python 项目JetBrains PyCharm 2016 2 https www jetbrains com pycharm 在 Lubuntu 上 突然之间 我的所有项目文件都从 IDE 中消失了 我尝试了以下方法
  • 如何交换两个 DataFrame 列?

    In MATLAB to swap the first and second columns of a table A one would do this1 A A 2 1 3 end 如果有类似的方便方法可以做到这一点A是一只熊猫Data
  • 从图像中读取文本

    关于将这些图像转换为文本有什么建议吗 我正在使用 pytesseract 除了这个之外 它在大多数情况下都工作得很好 理想情况下 我会准确地读取这些数字 最坏的情况我可以尝试使用 PIL 来确定 左边的数字是否为零 从左边开始 找到第一个白
  • 使用 itertools.product 并想要播种一个值

    所以我写了一个小脚本来从网站下载图片 它通过 7 个字母字符值 其中第一个字符始终是数字 问题是 如果我想停止脚本并再次启动它 我必须从头开始 我可以用我得到的最后一个值以某种方式播种 itertools product 吗 这样我就不必再
  • 以另一种风格制作一个带有形状和偏移参数的 numpy 数组

    我想以 3 元素实体 3d 位置 和单个元素 每个 x y z 坐标 的形式访问我的数组 经过一番研究后 我最终做了以下事情 gt gt gt import numpy as np gt gt gt arr np zeros 5 dtype
  • tqdm 进度条和 colorama 不能一起工作

    我想使用 colorama 但我已经在代码中使用了 tqdm Example import colorama as color import tqdm as tqdm without line it s working print colo
  • 多处理和美好价值

    有谁知道在多处理中创建进程或池时设置进程或池的良好值的简单方法 os nice increment Add increment to the process s niceness Return the new niceness Availa
  • 如何获取Python日志模块当前正在记录的文件?

    有没有办法做到这一点 如果logging config fileConfig some log 是setter 什么是getter 只是好奇这是否存在 对于我对单个文件日志的基本用法 这有效 logging getLoggerClass r
  • 使用 Fabric 检查路径是否存在

    我正在运行此代码来检查此目录是否存在于远程计算机上 但此代码正在检查本地计算机上的目录 如何验证远程计算机上的目录 rom fabric api import run sudo env import os env hosts remote
  • 如何使 Selenium WebDriver 不等待整个页面加载

    我正在使用 python 2 7 和 Selenium webdriver for Firefox 我有一个无法解决或在互联网上找到解决方案的问题 我的任务是打开大约 10k 个网页 adsl 路由器 Web 界面 通过 IP 地址 并上传
  • 与 Pandas DataFrame 列表列的比较

    我有一个像这样的数据框 df col1 col2 a 1 2 b 3 4 c 3 9 我想根据匹配的输入数组获取行 因此如果我有数组 1 2 我可以获得 col1 col2 a 1 2 当我尝试使用此公式执行此操作时 它不起作用 df lo

随机推荐

  • QueryOver:从子查询中选择列

    如何从不同表的子查询中选择 投影值到我的主查询中 我有一个像这样的 NH 模型 Serializable public class MyModel public virtual int Id get set more mapped valu
  • 在 sed 中查找并替换文本文件中的多个字符串[重复]

    这个问题在这里已经有答案了 下面是一个玩具文本文件 其中包含样本和特征信息以及测量值 Sample3 trait1 8 5 Sample6 trait2 2 2 Sample7 trait1 9 2 Sample3 trait2 1 3 S
  • 向空手道框架添加自定义步骤定义

    我需要提取从 复杂 响应标头解析的字段 并在稍后的测试中使用该值 看来空手道中的 header 关键字是为了设置请求头而设置的 而不是解析响应头 有没有办法添加自定义步骤定义来维护对场景变量存储的访问 看来变量存储在StepDefs类 并且
  • 从小写转换为大写

    我正在尝试从小写转换为大写 我知道这很容易做到 SUB AL 20H 但我得到了另一种解决方案 AND AL 0DFH 请帮助我理解这一点 谢谢 查看位模式 答 0x41 0100 0001 一个 0x61 0110 0001 中号 0x4
  • 如何在 Three.js 中获取蒙皮网格顶点的全局位置?

    在 Three js 中 我们现在能够获取 a 顶点的全局位置不带皮的网格感谢这个问题 但是我怎样才能获得 a 顶点的全局位置skinned与骨骼和变形目标进行网格划分 例如 如何打印 2 5 1 5 0 5 在以下情况下 mesh geo
  • 注意:如果您发送了值,则被调用的函数应该是付费的,并且您发送的值应该小于您当前的余额

    我正在尝试使用 openzeppelin 的 ERC20 实现 但出现错误 tokenAddress 是现有 ERC20 代币的地址 例如 USDC 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 im
  • 在 PIL 中使用 TIFF G4 图像

    我编写了一个纯 python TIFF G4 解压缩以供使用tifffile py 我知道有一些方法可以添加libtiff自定义 PIL 但我永远无法让它在混合 virtualenv 中很好地工作 我想在PIL中操作图像 我正在寻找将我的减
  • 没有端口的 HTTP X 转发主机行为

    我发现X Forwarded Host对于端口而言 HTTP 标头没有很好地定义 也许这就是为什么不同的实现在涉及这个标头时表现不同的原因 通常 此标头可以包含端口 例如b com 123这很简单 但如果真的发生了怎么办NOT包含端口并且服
  • Swift:IOS7 设备上的核心数据 -> 第二个实体上的entityForName 为零

    我已经使用 Xcode 6 beta 2 在一个小型 iPhone 项目上测试了 swift 该项目使用核心数据来访问数据模型中的 2 个实体 用户 合同 在 IOS 模拟器中一切正常 问题 当我为 IOS7 构建应用程序并在 iPhone
  • 请参阅场景大纲示例中定义的变量[重复]

    这个问题在这里已经有答案了 Feature Test Type Background url host def name test name def label name Scenario Outline Test 2 Given url
  • 判断两个矩形是否重叠?

    我正在尝试编写一个 C 程序 它接受用户的以下输入来构造矩形 2 到 5 之间 高度 宽度 x 位置 y 位置 所有这些矩形都将平行于 x 和 y 轴存在 即它们的所有边都将具有 0 或无穷大的斜率 我试图实现中提到的内容this问题 但我
  • 是否可以声明一个同时适用于数字和 bigint 的打字稿函数?

    在普通的无类型 JavaScript 中 编写一个可以对数字或 bigint 进行操作的函数并不难 具体取决于传入的参数 const sumOfSquares a b gt a a b b sumOfSquares 3 4 returns
  • DynamoDB 突发容量和自适应扩展

    我正在浏览 AWSblog从那里开始AWS re Invent 视频了解 DynamoDB 的自适应扩展和突发概念 我理解WCU和RCU的概念 以及突发桶堆积长达300秒的想法 并且分区的峰值WCU RCU是1000 3000 视频开始时间
  • c# DataSet.Fill Firebird 2.5 可怕的性能问题

    REMARK我完全重写了这个问题 因为在探索选项和获得见解时 我意识到问题的根源根本不是我想象的那样 我使用 Firebird 作为数据库引擎和标准 Net 提供程序 v 5 11 0 来使用以下代码获取数据 myBlob1 is BLOB
  • PHP计算两个日期之间的天数

    我正在开发一个围绕日期的网络应用程序 例如 我需要根据经过的天数计算数字 伪代码 count only array monday wednesday friday count only these days start date 12985
  • 如何确定 TensorFlow 中的占位符依赖性

    给定一些要获取的符号变量 我需要知道哪些占位符是依赖项 在 Theano 中 我们有 import theano as th import theano tensor as T x y z T scalars xyz u v x y y z
  • Java 中的布尔函数

    String s1 hi String s2 hi boolean b1 true boolean b2 false 1 System out println s1 s2 true 2 System out println s1 s2 s1
  • Webstorm:ColdFusion 语法

    有没有办法在 Web Storm 8 中获得 ColdFusion 语法高亮显示 有人在这方面取得过成功吗 如果不是 从哪里开始 或者可以采取什么措施来获得此选项 我目前使用 Web Storm 处理所有事情 它是一个很棒的编辑器 但目前我
  • 为什么此映射会导致我的 REPL 冻结?

    In 这个非常有用的答案 建议我可以替换这段代码 defun describe paths location edges apply function append mapcar describe path cdr assoc locati
  • 在 matplotlib/seaborn 中向箱线图添加图例

    我是Python新手 我使用以下代码在 matplotlib seaborn 中生成了一个箱线图 带有群图叠加 我现在想添加一个遵循每个框的配色方案的图例 我在网上找到的许多解决方案似乎不适用于这种特定类型的图表 例如 仅适用于分组箱线图