根据色调名称更改条形颜色

2023-12-31

我在用着seaborn and pandas从不同(但相关)的数据创建一些条形图。这两个数据集共享一个共同的类别,用作hue,因此我想确保在两个图表中该类别的条形颜色匹配。我该怎么办?

一个基本的例子如下:

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
sns.set_style('darkgrid')
fig, ax = plt.subplots()

a = pd.DataFrame({'Program': ['A', 'A', 'B', 'B', 'Total', 'Total'],
                  'Scenario': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
                  'Duration': [4, 3, 5, 4, 9, 7]})

g = sns.barplot(data=a, x='Scenario', y='Duration',
                hue='Program', ci=None)
plt.tight_layout()
plt.savefig('3 progs.png')

plt.clf()

b = pd.DataFrame({'Program': ['A', 'A', 'B', 'B', 'C', 'C', 'Total', 'Total'],
                  'Scenario': ['X', 'Y', 'X', 'Y', 'X', 'Y', 'X', 'Y'],
                  'Duration': [4, 3, 5, 4, 3, 2, 12, 9]})

g = sns.barplot(data=b, x='Scenario', y='Duration',
                hue='Program', ci=None)
plt.tight_layout()
plt.savefig('4 progs.png')

Producing the two graphs: 3 category bar plot 4 category bar plot

在这个例子中,我想确保Total类别在两个图中使用相同的颜色(例如黑色)


A. 使用颜色列表

确保两个图中相同类别具有相同颜色的最简单解决方案是在创建图时手动指定颜色。

# First bar plot
ax = sns.barplot(data=a, x='Scenario', y='Duration',
                 hue='Program', ci=None, palette=["C0", "C1", "k"])

# ...
# Second bar plot
ax2 = sns.barplot(data=b, x='Scenario', y='Duration',
                  hue='Program', ci=None, palette=["C0", "C1", "C2", "k"])

颜色"C2"(颜色循环的第三种颜色)仅出现在存在程序 C 的第二个图中。

B、使用字典

除了列表之外,您还可以使用字典,映射来自hue列到颜色。

palette ={"A": "C0", "B": "C1", "C": "C2", "Total": "k"}

ax = sns.barplot(data=a, x='Scenario', y='Duration', hue='Program', palette=palette)
# ...
ax2 = sns.barplot(data=b, x='Scenario', y='Duration', hue='Program', palette=palette)

In both cases, the output would look like this:
enter image description here

C.自动词典

最后,您可以根据来自的值自动创建该字典hue柱子。这里的优点是您既不需要事先知道颜色,也不需要知道各个数据帧中的值。

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
sns.set_style('darkgrid')
fig, ax = plt.subplots()

a = pd.DataFrame({'Program': ['A', 'A', 'B', 'B', 'Total', 'Total'],
                  'Scenario': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
                  'Duration': [4, 3, 5, 4, 9, 7]})
b = pd.DataFrame({'Program': ['A', 'A', 'B', 'B', 'C', 'C', 'Total', 'Total'],
                  'Scenario': ['X', 'Y', 'X', 'Y', 'X', 'Y', 'X', 'Y'],
                  'Duration': [4, 3, 5, 4, 3, 2, 12, 9]})

unique = a["Program"].append(b["Program"]).unique()
palette = dict(zip(unique, sns.color_palette(n_colors=len(unique))))
palette.update({"Total":"k"})

ax = sns.barplot(data=a, x='Scenario', y='Duration',
                 hue='Program', ci=None, palette=palette)
plt.tight_layout()
plt.figure()

ax2 = sns.barplot(data=b, x='Scenario', y='Duration',
                  hue='Program', ci=None,  palette=palette)
plt.tight_layout()
plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据色调名称更改条形颜色 的相关文章

  • 安装 Pillow 和 PIL

    I have Ubuntu 12 04 http en wikipedia org wiki List of Ubuntu releases Ubuntu 12 04 LTS 28Precise Pangolin 29 Precise Pa
  • 将 for 循环转换为列表理解

    我有一个for循环 将字符串列表中每个元素的子字符串与另一个字符串列表中的元素进行比较 mylist for x in list1 mat False for y in list2 if x 14 in y mat True if not
  • 如何使用Python从pdf文件中删除页面?

    我有一些超过 500 页的 pdf 文件 但每个文件中只需要几页 有必要保留文档的标题页 我确切地知道程序应该删除的页数 如何使用安装在 MS Visual Studio 上的 Python 2 7 环境来完成此操作 尝试使用PyPDF2
  • Python正则表达式查找所有单个字母字符

    我想找到字符串中单个字母字符每次出现的所有索引 我不想捕获单个字符 html 代码 这是我的代码 import re s fish oil B stack peanut c b words re finditer S s has alpha
  • 从第二个 DF 中查找一个 DF 中属于同等大小的矩形(由两个点给出)的点的快速(矢量化)方法

    我的数据框 A 如下所示 type latw lngs late lngn 0 1000 45 457966 9 174864 45 458030 9 174907 1 1000 45 457966 9 174864 45 458030 9
  • 将 Python 脚本导入另一个脚本?

    我正在阅读 Zed Shaw 的 艰难学习 Python 正在学习第 26 课 在本课中 我们必须修复一些代码 这些代码从另一个脚本调用函数 他说我们不必导入它们来通过测试 但我很好奇我们将如何做到这一点 课程链接 http learnpy
  • IP保持不变

    我正在尝试通过代码连接到 Tor 并更改我的身份 到目前为止我得到的结果是我连接成功但无法更改我的身份 这是我的代码 import socket import socks import httplib def connectTor sock
  • 如何在pytorch中动态索引张量?

    例如 我有一个张量 tensor torch rand 12 512 768 我得到了一个索引列表 说它是 0 2 3 400 5 32 7 8 321 107 100 511 我希望从给定索引列表的维度 2 上的 512 个元素中选择 1
  • Plotly:如何制作具有多条线和标准差阴影区域的图形?

    How can I use Plotly to produce a line plot with a shaded standard deviation I am trying to achieve something similar to
  • 如何缩放图像的一部分并插入到 matplotlib 中的同一图中

    我想缩放数据 图像的一部分并将其绘制在同一个图中 看起来有点像这个图 是否可以在同一图中插入缩放图像的一部分 我认为可以用子图绘制另一个图形 但它绘制了两个不同的图形 我还阅读了添加补丁以插入矩形 圆形 但不确定将图像的一部分插入到图中是否
  • lxml 属性需要完整的命名空间

    下面的代码使用 lxml python 3 3 从 Excel 2003 XML 工作簿中读取表格 该代码工作正常 但是为了通过 get 方法访问 Data 元素的 Type 属性 我需要使用键 urn schemas microsoft
  • 确定 TCP Listen() 队列中当前积压的连接数

    有没有办法找出currentLinux 上 TCP 套接字上等待 Accept 的连接尝试次数 我想我可以在每个事件循环上点击 EWOULDBLOCK 之前计算成功的 Accept 数量 但我使用的是隐藏这些细节的高级库 Python Tw
  • 如何使绘图的 xtick 标签成为简单的绘图?

    我不想用单词或数字作为 x 轴的刻度标签 而是想绘制一个简单的绘图 由直线和圆圈组成 作为每个 x 刻度的标签 这可能吗 如果是这样 在 matplotlib 中处理它的最佳方法是什么 我会删除刻度标签并将文本替换为patches http
  • 保持 WebSocket 连接处于活动状态

    我正在研究 WebSocket 协议 并尝试在后端使用 Python 实现一个简单的 ECHO 服务 它似乎工作正常 但连接建立后立即断开 这是我的客户
  • python - 从完整地址获取邮政编码

    我有一个数据框 其中一列中有完整地址 我需要创建一个仅包含邮政编码的单独列 有些地址只有五位数字的邮政编码 而其他地址则有额外的四位数字 如何拆分列以获取邮政编码 示例数据 d name bob john address 123 6th S
  • 打开 PDF 到书签/指定目标?

    我正在尝试使用 python 打开特定书签的 PDF 到目前为止 我可以在命令提示符中运行以下命令并得到我想要的 last是 PDF test pdf 中指定目的地的名称 C Program Files x86 Adobe Reader 1
  • AWS Cognito 作为网站的 Django 身份验证后端

    我对 Cognito 的理解是 它可以用来代替本地 Django 管理数据库来对网站的用户进行身份验证 然而 我没有找到任何带有通过 Cognito 登录屏幕的基本 Hello World 应用程序的详细示例 如果有人可以发布一篇文章 逐步
  • 需要FTP文件而不存储解释器文件通过Python保存在本地

    我正在尝试做一些图像解释器并尝试将它们直接存储到 FTP 服务器 但我的步骤是从本地文件夹上传图像 然后将其转换为蒙版图像 然后它将获得最终输出 但是在我的蒙版和最终输出场景中 临时图像被保存在本地 这是我不想要的 但如果不将图像存储在本地
  • Django ALLOWED_HOSTS 与 CORS(django-cors-headers)

    ALLOWED HOSTS 和 CORS 之间有什么区别 如果我定义了 ALLOWED HOSTS 我还需要定义 CORS 吗 我没有使用 django 模板 我也有可能动态定义这两个吗 我认为没有 我使用 django 作为后端 并在不同
  • Bokeh 中的相关图问题

    当我通过绘制数据时rect 来自 Bokeh 我在可视化中得到了一条由水平块组成的单行 数据打印正确 据我所知格式正确 type 验证它们都是列表 谁能诊断这个吗 如果问题不在这里 那么我可以附加更多代码 如果需要 在 Ubuntu 14

随机推荐

  • DDD:更新实体多个属性的指南

    所以 我决定学习 DDD 因为它似乎可以解决我一直面临的一些架构问题 虽然有很多视频和示例博客 但我还没有遇到可以指导我解决以下场景的视频和示例博客 假设我有实体 public class EventOrganizer IEntity pu
  • C#-在“封闭”局部作用域中使用变量?

    我正在尝试向 C 应用程序添加一些新功能 特别是尝试复制其某些行为 但在 Web 浏览器中 而不是像当前那样在应用程序中复制 我正在尝试调用已在中定义的方法Browser cs从方法内部的类MainWindow cs class 该方法定义
  • ImportError:没有名为 sklearn.preprocessing 的模块

    我按照这些在 Ubuntu 上成功安装了 scikit learn指示 http scikit learn org 0 13 install html install official release 但是 当我运行使用它的程序时 出现此错
  • Axis2:将非必需属性添加到 WSDL 时避免出现“意外子元素”错误

    我有一个 NET WCF 服务和一个使用 Axis2 生成服务存根的 Java 应用程序 当我添加一个optionalWCF 中数据合约的属性以及将其排序在属性列表的末尾 这应该是向后兼容的更改 它会导致意外的子元素Java 应用程序中的错
  • 创建 GraphQLHttpClient 时出现 GraphQLClient 错误:IGraphQLWebsocketJsonSerializer

    使用 GraphQL 版本 2 1 0 我无法创建对象 GraphQLHttpClient 我立即收到以下错误 System AggregateException HResult 0x80131500 Message One or more
  • Epplus插入图表ColumnStacked3D切换行/列

    我正在使用 epplus 在我的程序中创建 Excel 我需要插入柱形图 这是我的代码 Add the chart to the sheet var chart sheet Drawings AddChart chartTitle eCha
  • 如何将networkX图导入neo4j?

    我有一个创建的图表networkX我正在使用 neonx 将其导入neo4j在本地主机上 我有一个networkX类型图称为G 下面是代码 data1 json graph node link data G H json graph nod
  • 由 tycho maven 将 JRE 与基于 RCP 插件的应用程序捆绑在一起

    我有基于插件模型的 RCP 应用程序 我想将 JRE 放入 Maven Tycho 创建的最终工件中 我尝试遵循这些建议 在第谷构建中包含一个 jre https codeiseasy wordpress com 2012 07 31 in
  • 保存后会在“我的文档”中创建 Excel Addin 的副本

    我有一个应用程序 在 IBM Notes 中运行 使用 Lotusscript 等 它通过 OLE 自动化创建一个新的 Excel 对象 在我的应用程序中 我创建一个新的工作簿并将其保存到临时文件夹 我将其另存为不带宏的 Excel 工作表
  • HTML5 语音输入和 Google Translate 文本转语音,Chrome 中的问题

    我正在创建一个语音 文本备忘录 Web 应用程序 这里 http gustavstromberg se sandbox html5 localstorage http gustavstromberg se sandbox html5 loc
  • awk 命令在 Snakemake --use-singularity 中失败

    我正在尝试将 Snakemake 与 Singularity 结合起来 我注意到一个简单的awk使用奇点时命令不再起作用 这 1最后一行被 bash 替换 而不是被用作第一个字段awk 这是一个最小的工作示例 蛇形锉刀 singularit
  • Elasticsearch - 模糊、短语、完成建议和破折号

    因此 我一直在问单独的问题 试图实现我想要实现的搜索功能 但仍然达不到要求 所以我想我只会问人们他们对最佳 Elasticsearch 设置 映射 索引和查询结构的建议 以完成我正在寻找的工作为了 当您键入查询类别的解决方案时 我需要进行搜
  • 是否可以编译unittest而不运行它们并为特定模块显式运行unittest?

    我经常在开发 API 时在主函数中编写测试代码 但因为 D 集成了单元测试 所以我想开始使用它们 我当前的工作流程如下 我有一个脚本可以监视任何 d 文件中的文件更改 如果脚本找到修改过的文件 它将运行dub build 问题是dub bu
  • 在 tabcontrol C# 中显示多个数据表

    我有一个小程序 需要一个数据表 从sql数据库获取数据 然后按字段将其拆分为数据表数组 然后应将其显示在选项卡控件中 每个字段都在其自己的选项卡中 分割 采用单个数据表并分割成数据表数组 我认为工作正常 public DataTable s
  • 如何模拟 REST API [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 MVC 应用程序需要调用第三方供应商的 REST API REST API 应该返回 JSO
  • 是否有重新启动集群的最佳实践

    我遵循亚历克斯埃利斯的优秀tutorial https gist github com alexellis fdbc90de7691a1b9edb545c17da2d975使用kubeadm在 Raspberry Pi 上启动 K8s 集群
  • Gitignore 不忽略文件夹

    我已将多个文件夹添加到我的 gitignore文件 但当我这样做时它们仍然出现git status 我的安装 计算机是新的 我正在尝试在 svn 中初始化 git 存储库 正如我之前所做的数百次一样 尽管不是在这台机器上 文件夹被标记为忽
  • 如何在 ActiveMQ 5.2 中打开 JMX

    在 ActiveMQ 5 2 中启用 JMX 的正确方法是什么 我见过相互冲突的文档 所以我想知道是否有人知道正确的配置文件更改应该是什么 我想我可以通过更改用于启动 ActiveMQ 的批处理文件来使其工作 但我真的不知道
  • Android应用程序中的语音检测

    描述 我的应用程序记录手机麦克风的声音 我正在使用 android 标准类 android media AudioRecord 要做到这一点 应用程序有 2 个按钮 Start and Stop 当我按下start按钮应用程序开始记录 当我
  • 根据色调名称更改条形颜色

    我在用着seaborn and pandas从不同 但相关 的数据创建一些条形图 这两个数据集共享一个共同的类别 用作hue 因此我想确保在两个图表中该类别的条形颜色匹配 我该怎么办 一个基本的例子如下 import seaborn as