博客
关于我
pandas :我如何对堆叠的条形图进行分组?
阅读量:793 次
发布时间:2023-02-26

本文共 1524 字,大约阅读时间需要 5 分钟。

在Pandas中,创建堆叠条形图并根据特定类别进行分组是一项常见的数据可视化任务。要实现这一目标,首先需要对数据进行适当的组织和准备。

数据准备

假设你有以下数据集,其中包含了性别(Gender)、职业(Profession)和薪资(Salary)等信息:

import pandas as pd
import matplotlib.pyplot as plt
data = {
'Gender': ['Male', 'Female', 'Male', 'Female', 'Male', 'Female'] * 2,
'Profession': ['Engineer', 'Doctor', 'Teacher', 'Artist', 'Engineer', 'Doctor', 'Teacher', 'Artist'] * 2,
'Salary': [50000, 60000, 70000, 80000, 90000, 100000] * 2
}
df = pd.DataFrame(data)

数据分组与转换

接下来,使用Pandas的groupby()方法对数据进行分组,按性别和职业分组,并将结果转换为适合堆叠条形图的结构。以下是具体操作:

grouped_data = df.groupby(['Gender', 'Profession']).sum().unstack()

绘制堆叠条形图

最后,使用Matplotlib绘制堆叠条形图。以下是完整的代码示例:

import pandas as pd
import matplotlib.pyplot as plt
data = {
'Gender': ['Male', 'Female', 'Male', 'Female', 'Male', 'Female'] * 2,
'Profession': ['Engineer', 'Doctor', 'Teacher', 'Artist', 'Engineer', 'Doctor', 'Teacher', 'Artist'] * 2,
'Salary': [50000, 60000, 70000, 80000, 90000, 100000] * 2
}
df = pd.DataFrame(data)
grouped_data = df.groupby(['Gender', 'Profession']).sum().unstack()
grouped_data.plot(kind='bar', stacked=True)
plt.title('Salary Distribution by Gender and Profession')
plt.xlabel('Gender')
plt.ylabel('Total Salary')
plt.xticks(rotation=0)
plt.legend(loc='upper right', bbox_to_anchor=(1, 1))
plt.tight_layout()
plt.show()

代码解释

  • 数据准备:首先,我们创建了一个DataFrame,包含了性别、职业和薪资等信息。
  • 分组与转换:使用groupby()按性别和职业分组,sum()计算每个组的总薪资,然后使用unstack()将分组结果转换为列索引,这样可以方便地进行堆叠条形图的绘制。
  • 绘图:使用plot()函数绘制堆叠条形图,设置标题、坐标轴标签和图例,确保图表清晰易读。
  • 这种方法可以有效地展示不同性别和职业之间的薪资分布差异,适用于需要多维度分析的场景。

    转载地址:http://esvfk.baihongyu.com/

    你可能感兴趣的文章
    oracle中关于日期问题的汇总!
    查看>>
    Oracle中常用的语句
    查看>>
    Oracle中序列的操作以及使用前对序列的初始化
    查看>>
    oracle中新建用户和赋予权限
    查看>>
    Oracle中的NVL,NVL2,NULLIF以及COALESCE函数使用
    查看>>
    Oracle中的rownum 和rowid的用法和区别
    查看>>
    oracle中的大小写、字符、dual、数字、处理、日期、函数、显/隐式、时间、条件表达式case、decode、to_date、to_char、sysdate
    查看>>
    oracle中表和视图的区别,oracle中常用表和视图
    查看>>
    oracle从备份归档日志的方法集中回收
    查看>>
    oracle优化器analyzed,Oracle 学习之 性能优化(十三) 索引
    查看>>
    Oracle修改字段类型
    查看>>
    Oracle修改表或者字段的注释
    查看>>
    oracle典型安装失败,安装oracle 10失败
    查看>>
    Oracle内存结构详解(四)--Oracle SGA其他组成部分
    查看>>
    Oracle函数与存储过程和程序包
    查看>>
    Oracle分析函数之LEAD和LAG
    查看>>
    Oracle分组取前n条记录
    查看>>
    Oracle创建database link(dblink)和同义词(synonym)
    查看>>
    oracle创建数据库的步骤
    查看>>
    Oracle创建用户、角色、授权、建表
    查看>>