Python:如何使用matplotlib在python中绘制条形图?

用户

我的目标是使用.csv数据创建条形图,以查看按性别分组的工作年(x)和工资(y)之间的关系(单独的条形)。

首先,我想将变量“工作年”分为三类:(1)超过10年,(2)仅10年,(3)不到10年然后我要创建带有性别的条形图( 1 =女,0 =男)

我的部分数据如下所示:

...    workyear gender wage 
513         12    0  15.00
514         16    0  12.67
515         14    1   7.38
516         16    0  15.56
517         12    1   7.45
518         14    1   6.25
519         16    1   6.25
520         17    0   9.37
....

为此,我尝试将变量的值分为三组,并使用了matplotlib。

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

#load data 
df=pd.DataFrame.from_csv('data.csv', index_col=None)
print(df)
df.sort_Values("workyear", ascending=True, inplace=True)

#parameters
bar_width = 0.2

#replacing Education year -> Education level grouped by given criteria.
#But I got an error.
df.loc[df.workyear<10, 'workyear'] = 'G1'
df.loc[df.workyear==10, 'workyear'] = 'G2'
df.loc[df.workyear>10, 'workyear']='G3'

#plotting
plt.bar(x, df.education[df.gender==1], bar_width, yerr=df.wage,color='y', label='female')
plt.bar(x+bar_width, df.education[df.gender==0], bar_width, yerr=df.wage, color='c', label='male')

我想看到这样的条形图(请考虑将“ +”作为条形图):

y=wage|                 + +
      | +        +      + +
      | +      + +      + +
      | + +    + +      + +
      |_______________________ x=work year (3-group)
        >10     10       10<  

但这是我真正得到的...(是的,所有错误)

Traceback (most recent call last):
File "data.py", line 21, in <module>
df.loc[df.workyear>10, 'workyear']='G3'
in wrapper
res = na_op(values, other)
in na_op
result = _comp_method_OBJECT_ARRAY(op, x, y)
in _comp_method_OBJECT_ARRAY
result = lib.scalar_compare(x, y, op)
File "pandas\_libs\lib.pyx", line 769, in pandas._libs.lib.scalar_compare (pandas\_libs\lib.c:13717) 
TypeError: unorderable types: str() > int()

你能给我建议吗?

BM

更直接的方法:

df['Age']=pd.cut(df.workyear,[1,13,14,100])
df['Gender']=df.gender.map({0:'male',1:'female'})
df.pivot_table(values='wage',index='Age',columns='Gender').plot.bar()

为:

![在此处输入图片描述

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用matplotlib在python中绘制漂亮的条形图

使用Matplotlib.pyplot在python中绘制条形图

如何在python中使用matplotlib在python中绘制带有标签的简单条形图?

在python中使用matplotlib绘制多个分组的条形图

如何在python或matplotlib中绘制非常小的值的条形图?

如何在python中使用matplotlib绘制叠加的条形图?

使用 Pandas/matplotlib.pyplot 在 python 中绘制堆叠条形图

在python中绘制条形图

如何在python中绘制条形图

如何使用Pandas Python绘制堆积的条形图

使用python从csv文件中绘制堆积的条形图

使用旋转的xlabel在Seaborn Python中绘制条形图

使用特定值在 python 中绘制条形图

无法在Matplotlib中绘制条形图

使用matplotlib绘制堆积的条形图,保持使用python时熊猫数据框的顺序

在Python中使用matplotlib或Seaborn与Datetime Index绘制组条形图

如何使用 matplotlib 绘制条形图,“x”在名称中包含值和“y”

如何使用matplotlib从三个不同的数据框中绘制条形图?

如何使用Python一起绘制密度图和条形图?

如何使用matplotlib绘制复杂的条形图-具有多行条形的多个子图?

如何使用matplotlib绘制复杂的条形图-具有多行条形的多个子图?

Python:在Facet网格中绘制堆积的条形图

从python字典中的数据绘制条形图

在Python熊猫中绘制条形图的便捷方法

使用python绘制曲线而不是条形图

绘制条形图-colors python

带组的 Python 绘制条形图

使用Matplotlib在python中使用Dictionary的条形图

从数据框在Python / matplotlib中的条形图上绘制线图