7个Pandas绘图函数,快速实现数据可视化

💡 原文英文,约1200词,阅读约需5分钟。
📝

内容提要

本文介绍用pandas内置绘图函数快速可视化数据:先用Faker和NumPy生成200条员工数据,再演示七种图——散点图看年龄与薪资关系、折线图看薪资随工龄趋势、直方图看年龄分布、箱线图比较各部门薪资分布与异常值、柱状图统计各部门人数、面积图展示各年龄段累计薪资、饼图显示各部门薪资占比。适合快速探索数据,更精美的图表可用matplotlib或seaborn。

🔎

延伸解读

示例数据是合成的,结论需谨慎解读

文章使用Faker和NumPy生成200条员工数据,并设定了随机种子以保证可复现。其中薪资与工龄存在人为设定的线性关系,因此折线图呈现的趋势是构造出来的,并非真实数据规律。读者应理解这些图表仅用于演示绘图函数,不能将图中关系直接套用到现实场景。

七种图表各有适用场景

散点图适合观察两个连续变量的关系,如年龄与薪资;折线图用于展示随连续变量(如工龄)的趋势;直方图呈现连续变量的分布;箱线图可比较分组数据的分布并识别异常值;柱状图统计类别频数;面积图展示累计分布;饼图显示部分与整体的比例。根据分析目的选择图表类型,能更有效地传达信息。

快速探索与精细可视化的权衡

Pandas内置的绘图函数基于Matplotlib,只需一行代码即可从DataFrame直接出图,适合数据探索阶段的快速可视化。但文章也指出,若需要更精美的图表,应使用Matplotlib或Seaborn进行定制。因此,在初步分析时可用Pandas绘图提高效率,在最终报告或展示时再转向更强大的可视化库。

❓

Q&A

Pandas 里怎么画散点图看两个变量的关系?

使用 plot.scatter() 方法,指定 x 和 y 参数即可。例如 df_employees.plot.scatter(x='Age', y='Salary') 可以绘制年龄与薪资的散点图,帮助判断两者是否存在相关性。

如何用 Pandas 绘制折线图来观察薪资随工龄的变化趋势?

先按工龄分组计算平均薪资,然后用 plot.line() 绘制。例如:average_salary_by_experience = df_employees.groupby('YearsWithCompany')['Salary'].mean(),再调用 df_employees.plot.line(x='YearsWithCompany', y='AverageSalaryByExperience')。

Pandas 直方图怎么画?用来分析年龄分布。

使用 plot.hist() 方法,并可通过 bins 参数设置分箱数量。例如 df_employees['Age'].plot.hist(title='Age Distribution', bins=15) 可以展示员工年龄的分布情况。

箱线图在 Pandas 中如何按部门比较薪资分布和异常值?

使用 boxplot() 方法,指定 column 和 by 参数。例如 df_employees.boxplot(column='Salary', by='Department') 可以按部门绘制薪资箱线图,直观比较各部门薪资的中位数、范围及异常值。

Pandas 面积图适合什么场景?怎么绘制累计薪资随年龄组的分布?

面积图适合展示连续或分类轴上的累积分布。可先用 pd.cut() 将年龄分箱,再按年龄组计算薪资累积和,最后用 plot.area() 绘制。例如:df_employees['AgeGroup'] = pd.cut(...),然后 df_employees.plot.area(x='AgeGroup', y='CumulativeSalaryByAgeGroup')。

用 Pandas 画饼图展示各部门薪资占比,代码怎么写?

先按部门分组求和薪资,然后调用 plot.pie()。例如:df_employees.groupby('Department')['Salary'].sum().plot.pie(title='Department-wise Salary Distribution', autopct='%1.1f%%') 可以显示各部门薪资占总薪资的百分比。

🏷️

标签

➡️

继续阅读