每组具有归一化 y 轴的计数图

2024-01-02

我想知道是否可以创建 Seaborn 计数图,但不是显示 y 轴上的实际计数,而是显示其组内的相对频率(百分比)(如指定的那样)hue范围)。

我用以下方法解决了这个问题,但我无法想象这是最简单的方法:

# Plot percentage of occupation per income class
grouped = df.groupby(['income'], sort=False)
occupation_counts = grouped['occupation'].value_counts(normalize=True, sort=False)

occupation_data = [
    {'occupation': occupation, 'income': income, 'percentage': percentage*100} for 
    (income, occupation), percentage in dict(occupation_counts).items()
]

df_occupation = pd.DataFrame(occupation_data)

p = sns.barplot(x="occupation", y="percentage", hue="income", data=df_occupation)
_ = plt.setp(p.get_xticklabels(), rotation=90)  # Rotate labels

Result:

我正在使用众所周知的成人数据集UCI 机器学习存储库 http://archive.ics.uci.edu/ml/datasets/Adult。 pandas 数据框是这样创建的:

# Read the adult dataset
df = pd.read_csv(
    "data/adult.data",
    engine='c',
    lineterminator='\n',

    names=['age', 'workclass', 'fnlwgt', 'education', 'education_num',
           'marital_status', 'occupation', 'relationship', 'race', 'sex',
           'capital_gain', 'capital_loss', 'hours_per_week',
           'native_country', 'income'],
    header=None,
    skipinitialspace=True,
    na_values="?"
)

这个问题 https://stackoverflow.com/questions/33179122/seaborn-countplot-with-frequencies有点相关,但没有利用hue范围。就我而言,我不能只更改 y 轴上的标签,因为条形的高度必须取决于组。


使用较新版本的seaborn,您可以执行以下操作:

import numpy as np
import pandas as pd
import seaborn as sns
sns.set(color_codes=True)

df = sns.load_dataset('titanic')
df.head()

x,y = 'class', 'survived'

(df
.groupby(x)[y]
.value_counts(normalize=True)
.mul(100)
.rename('percent')
.reset_index()
.pipe((sns.catplot,'data'), x=x,y='percent',hue=y,kind='bar'))


output

更新:还在条形图顶部显示百分比

如果您还想要百分比,您可以执行以下操作:

import numpy as np
import pandas as pd
import seaborn as sns

df = sns.load_dataset('titanic')
df.head()

x,y = 'class', 'survived'

df1 = df.groupby(x)[y].value_counts(normalize=True)
df1 = df1.mul(100)
df1 = df1.rename('percent').reset_index()

g = sns.catplot(x=x,y='percent',hue=y,kind='bar',data=df1)
g.ax.set_ylim(0,100)

for p in g.ax.patches:
    txt = str(p.get_height().round(2)) + '%'
    txt_x = p.get_x() 
    txt_y = p.get_height()
    g.ax.text(txt_x,txt_y,txt)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每组具有归一化 y 轴的计数图 的相关文章

  • 带有指针数组的 cython

    我在 python 中有一个 numpy ndarrays 列表 具有不同的长度 并且需要非常快速地访问 python 中的列表 我认为指针数组就可以解决问题 我试过 float type t list of arrays no of ar
  • 帮助需要在可选条件下编写正则表达式[关闭]

    我有一个日志文件包含如下内容 log Using data from yyyy mm dd 2011 8 3 0 files queued for scanning Warning E test H ndler pdf File not F
  • 创建一个打开文件并创建字典的函数

    我有一个正在处理的文件 我想创建一个读取文件并将内容放入字典中的函数 然后该字典需要通过 main 函数传递 这是主程序 它无法改变 我所做的一切都必须与主程序配合 def main sunspot dict file str raw in
  • Django 如何从 ManyToManyField 序列化并列出全部

    我正在使用 Django 1 9 1 开发移动应用程序后端 我实现了关注者模型 现在我想列出用户的所有关注者 但目前我不得不这样做 我还使用 Django Rest 框架 这是我的 UserProfile 模型 class UserProf
  • 在 keras 中使用自定义张量流操作

    我在张量流中有一个脚本 其中包含自定义张量流操作 我想将代码移植到 keras 但我不确定如何在 keras 代码中调用自定义操作 我想在 keras 中使用tensorflow 所以到目前为止我发现的教程描述了与我想要的相反的内容 htt
  • 当 DetailView 遇到时更新模型字段。 [姜戈]

    我有一个类似的 DetailViewviews py views py class CustomView DetailView context object name content model models AppModel templa
  • 在ansible中合并字典

    我目前正在构建一个使用 ansible 安装 PHP 的角色 并且在合并字典时遇到一些困难 我尝试了多种方法来做到这一点 但我无法让它像我想要的那样工作 A vars file my default values key value my
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一
  • 如何使用 msgpack 进行读写?

    如何序列化 反序列化字典data with msgpack http msgpack org The Python 文档 http msgpack python readthedocs io en latest badge latest似乎
  • 管理文件字段当前 url 不正确

    在 Django 管理中 只要有 FileField 编辑页面上就会有一个 当前 框 其中包含指向当前文件的超链接 但是 此链接会附加到当前页面 url 因此会导致 404 因为不存在这样的页面 例如 http 127 0 0 1 8000
  • 如何在matplotlib中基于x轴更改直方图颜色

    我有根据 pandas 数据框计算出的直方图 我想根据 x 轴值更改颜色 例如 If the value is 0 the color should be green If the value is gt 0 the color shoul
  • python中打印字符串的长度

    有没有什么方法可以找到 即使是最好的猜测 Python中字符串的 打印 长度 例如 potaa bto 是 8 个字符len但 tty 上只打印 6 个字符宽 预期用途 s potato x1b 01 32mpotato x1b 0 0mp
  • 请求response.iter_content()获取不完整的文件(1024MB而不是1.5GB)?

    您好 我一直在使用此代码片段从网站下载文件 到目前为止 小于 1GB 的文件都很好 但我注意到 1 5GB 文件不完整 s is requests session object r s get fileUrl headers headers
  • 向量化 numpy bincount

    我有一个 2d numpy 数组 A我要申请np bincount 到矩阵的每一列A生成另一个二维数组B由原始矩阵每列的 bincounts 组成A 我的问题是 np bincount 是一个采用一维数组的函数 它不是像这样的数组方法B A
  • 如何将 pytest 装置与 django TestCase 一起使用

    我如何在TestCase方法 类似问题的几个答案似乎暗示我的例子应该有效 import pytest from django test import TestCase from myapp models import Category py
  • psutil:测量特定进程的CPU使用率

    我正在尝试测量进程树的 cpu 使用率 目前获取进程 没有子进程 的 cpu usage 就可以了 但我得到了奇怪的结果 import psutil p psutil Process PID p cpu percent 还给我float g
  • Jinja2中获取请求参数

    如何检索请求参数a在 Jinja2 模板中 http foo bar a 1 我这个答案有点晚了 但其他解决方案并没有真正考虑到您对 Flask 的使用 事实上 您将 Flask 与 Jinja2 一起使用 这使得您的情况与其他框架有点不同
  • 在Python中从列表中获取n个项目组的惯用方法? [复制]

    这个问题在这里已经有答案了 给定一个列表 A 1 2 3 4 5 6 是否有任何惯用的 Pythonic 方式来迭代它 就好像它是 B 1 2 3 4 5 6 除了索引之外 这感觉像是 C 的遗留物 for a1 a2 in A i A i
  • python中匹配3个或更多相同的字符

    我正在尝试使用正则表达式在字符串中查找三个或更多相同的字符 例如 你好 不匹配 噢 会的 我尝试过做类似的事情 re compile 1 3 a zA Z re compile w 1 5 但似乎都不起作用 w 1 2 是您正在寻找的正则表
  • Shap - 颜色条不显示在摘要图中

    显示summary plot时 不显示颜色条 shap summary plot shap values X train 我尝试过改变plot size 当绘图较高时 会出现颜色条 但它非常小 看起来不应该 shap summary plo

随机推荐

  • 无法解析颜色值

    我试图让我的按钮在按下时改变其文本的颜色 但我遇到了一个无法解决的问题 我收到一条错误消息 无法解析颜色值 然后它为我提供了文件的路径 这是我使用的文件 这个位于资源下名为 color 的新文件夹及其调用的按钮中
  • Android:错误:使用未声明的标识符“fseeko”

    当我尝试使用源代码在 Android 中构建 boost 库时 出现以下错误 发布 armeabi v7a D Android Sdk ndk gt 捆绑 工具链 llvm prebuilt windows x86 64 sysroot u
  • 不带数据库名称的 MySql ConnectionString 在 C# 中创建数据库

    我遇到了一种情况 我确实需要使用进入 mysql 服务器所需的连接字符串在 MYSQL 中创建一个数据库 到目前为止 我已经使用了带有数据库名称的连接字符串 所以在这种情况下 执行我的连接字符串结构是什么 创建数据库查询到 mysql 服务
  • 使用 Stack 作为全局包管理器的推荐方法

    例如 我想在全球范围内安装一些 Haskell 库hindent我的编辑器的 Haskell 集成使用了它 推荐的方法是什么 我以为stack install hindent是执行此操作的正确方法 然而 后来我想更新我的软件包 发现有没办法
  • 如何以编程方式放大/缩小 WebView 的内容?

    我正在尝试以编程方式放大 缩小应用程序中 WebView 对象的内容 但我找不到一个好的方法来做到这一点 有人可以给我一些帮助吗 如果能有一些代码示例就更好了 最后 lollypop 支持 Zoomby 但在 API 21 下 zoomin
  • React-Native:如何打开本地捆绑的二进制文件

    我正在编写一个反应本机应用程序 我希望它使用包含设备固件更新的 zip 文件进行部署 在让用户发送更新之前 我需要我的代码来打开 zip 并对其内容进行一些验证 我发现了很多 zip 处理 NPM 包 所以我需要做的就是加载文件内容 这样我
  • kubectl run 命令失败并出现连接被拒绝错误

    我正在关注 kubernetes io 上的 hellonode 教程 http kubernetes io docs hellonode http kubernetes io docs hellonode 我在尝试执行 创建您的 Pod
  • 无法使用 Actions SDK 读取意图

    我的 action json 文件中有以下操作 description Recommend movies initialTrigger intent GIVE RECOMMENDATION queryPatterns queryPatter
  • Django 1.4 - 重定向到非 HTTP url

    我们有一个重定向到非 HTTP url 方案的视图 它在 iOS 应用程序中使用 但由于我们已经升级到 Django1 4 因此执行此重定向代码时会发生崩溃 它崩溃了 myyrlscheme 的可疑操作 使用方案 appdev 不安全地重定
  • 在Linux环境下运行.bat

    有没有办法在Linux环境下运行 bat文件 我有几个 bat 文件 它们的目的是调用 mvn install install file 脚本 因此 脚本中不依赖任何操作系统 谢谢你 您可以使用wine http www winehq or
  • Perl foreach 循环变量范围

    我是 Perl 新手 在编写以下代码片段后对 Perl 作用域规则感到困惑 usr bin perl my i 0 foreach i 5 10 print i n print Outside loop i i n 我预计输出如下 5 6
  • 为组织添加用户时常见连接配置文件丢失错误

    我正进入 状态 Error Common connection profile is missing this client s organization and certificate authority 运行时出错gateway get
  • 如何通过gdb调试nodejs插件

    Heading 我正在编写一个 Node Js C 插件 当我尝试通过在互联网上搜索的方式调试我的 C 添加时 它根本无法工作 我从互联网得到的是 gdb节点 设置参数app js 跑步 我明白了 usr local bin node 不是
  • 如何确定“BUS-Error”的原因

    我正在开发一个带有 yocto 发行版和 python 2 7 3 的 variscite 板 我有时会得到总线错误来自 python 解释器的消息 我的程序在错误发生之前至少几个小时或几天正常运行 但是当我得到它一次时 当我尝试重新启动程
  • 使用 JavaScript 编辑 CSS 渐变

    我正在 Firefox 中通过 JavaScript 编辑 CSS 渐变 我有用户可以输入的输入框 1 方向 2 第一种颜色 3 第二种颜色 这是html
  • 滑动最后一个视图控制器后,如何关闭/弹出 UIPageViewController?

    滑动最后一个视图控制器后 如何关闭 弹出 UIPageViewController 基本上想要使用图像制作教程风格的分页视图 并在用户从上一页滑动到 下一页 后关闭 UIViewController pageViewController U
  • Applet 生命周期:init() 和 start() 以及 destroy() 和 stop() 之间的实际区别是什么?

    The javadoc http download oracle com javase 6 docs api java applet Applet html and tutorial http download oracle com jav
  • Spring Boot Web 服务客户端身份验证

    我的目标是调用需要身份验证的 Web 服务 当我在浏览器中打开其 wsdl 时 浏览器会要求我登录名 密码 作为基础 我使用来自this https spring io guides gs consuming web service 教程
  • 如何防止docker搜索docker hub

    我正在建立一些 docker 主机在生产环境中运行 我们希望所有镜像都必须通过容器管道 并且我们不希望能够从 Docker Hub 中提取镜像 安全问题 如何阻止 docker 从 dockerhub 提取镜像 理想情况下 我想通过配置 d
  • 每组具有归一化 y 轴的计数图

    我想知道是否可以创建 Seaborn 计数图 但不是显示 y 轴上的实际计数 而是显示其组内的相对频率 百分比 如指定的那样 hue范围 我用以下方法解决了这个问题 但我无法想象这是最简单的方法 Plot percentage of occ