【数据可视化】柱状图绘制

01、引言

本文涵盖主题:基本柱状图、分组柱状图、核密度估计与堆叠柱状图、步进图与多边形图。

数据来源:

  • penguins.csv

  • tips.csv

使用工具:

  • Seaborn 

  • Matplotlib

首先,确保已经安装了Pythonpip包管理工具。然后,在命令行中执行以下命令来安装Seaborn库和Matplotlib库:

# seaborn库 :
pip install seaborn 

# Matplotlib库:
pip install matplotlib

本期内容『数据+代码』已上传百度网盘。

关注公众号【小Z的科研日常】,后台回复关键词[柱状图]获取

02、数据导入与准备

我们导入需要用到的数据集。代码中使用Pandas库来导入和预览数据。让我们来预览一下"penguins"数据集与"tips"数据集:

import pandas as pd

penguins = pd.read_csv("penguins.csv")
tips =  pd.read_csv("tips.csv")

print(penguins.head())
print(tips.head())

03、基本柱状图

在这一部分,我们将介绍如何绘制基本的柱状图。代码中使用了histplot函数来绘制柱状图,通过指定x参数,可以绘制出柱状图,本段代码使用penguins数据集。

#插入代码块:基本柱状图2
sns.set_palette("Paired")
sns.histplot(data=penguins,
            x="flipper_length_mm",
            binwidth=3)
plt.grid(False)
plt.show()

应用场景:

  • 比较不同类别的数量、频率或分布情况。

  • 可以用于离散数据的直观展示。

  • 显示类别之间的趋势和变化。

优点:

  • 直观易懂,适合初学者。

  • 有效地呈现了类别之间的差异和变化。

  • 方便与其他图表进行对比和联合分析。

缺点:

  • 不适合展示连续数据的分布情况。

  • 当类别过多时,柱状图会显得拥挤不清晰。

04、分组柱状图

在这一部分,我们将介绍如何绘制分组柱状图。代码中使用Seaborn的hue参数来实现按照"species"字段进行分组,并绘制数据集中不同种类企鹅的翼长柱状图。(可使用自己的数据集,调整字段名称即可)

#插入代码块:分组柱状图
sns.set_palette("Dark2")
sns.histplot(data=penguins, 

             x="flipper_length_mm", 

             hue="species") 

plt.grid(False)

plt.show()

#插入代码块:分组柱状图2
sns.histplot(data=tips, 
             x ="day", hue="sex",
            shrink=0.8, multiple="dodge")
plt.grid(False)
plt.show()

应用场景:

  • 比较不同类别中多个变量的差异。

  • 可以同时显示类别间和组内的差异,有助于观察整体趋势和细节。

  • 可以用于对比类别内部多个子类别的指标。

优点:

  • 显示了多个类别和组内差异的直观展示。

  • 适用于多维度数据的分析和展示。

缺点:

  • 当数据量很大时,图表可能变得复杂不易理解。

  • 不适合展示连续数据的分布情况。

05、核密度与堆叠柱状图

在这一部分,我们将介绍核密度估计图和堆叠柱状图的绘制方法。

5.1核密度估计图

#插入代码块:带有核密度估计的直方图
sns.set_palette("BuGn_r")
sns.histplot(data=penguins, 

             x="flipper_length_mm", 

             binwidth=3, 

             kde=True)

plt.grid(False)

plt.show()

#插入代码块:核密度估计图2
sns.histplot(data=penguins,
            x="flipper_length_mm",
            hue="species",
            element="step",
            stat="density",
            common_norm=False)
plt.grid(False)
plt.show()

核密度估计图应用场景:

  • 展示连续数据的分布情况,可用于观察数据的整体分布特征。

  • 相对于直方图,核密度估计图更平滑,能够更好地展示数据的连续性。

优点:

  • 适用于连续数据的分布展示。

  • 比直方图更平滑,更好地展现分布的连续性。

缺点:

  • 不适合展示离散数据的分布情况。

5.2堆叠柱状图

#插入代码块:堆叠柱状图
sns.set_palette("Dark2")
sns.histplot(data=penguins, 

            x="flipper_length_mm", 

            hue="species", 

            multiple="stack")

plt.grid(False)

plt.show()

堆叠柱状图应用场景:

  • 展示不同类别中多个子类别的数量或频率差异,同时显示各子类别的组成比例。

  • 可以用于展示随时间或其他维度的变化趋势。

优点:

  • 显示了类别中各子类别的组成比例。

  • 可以用于对比类别内部多个子类别的指标。

缺点:

  • 当类别过多时,图表会显得拥挤不清晰。

06、步进图和多边形图

6.1步进式堆叠直方图

#插入代码块:步进式堆叠直方图
sns.histplot(data=penguins, 

            x="flipper_length_mm", 

            hue="species", 

            element="step")

plt.grid(False)

plt.show()

步进图应用场景:

  • 展示连续数据的变化情况,特别是在观察变化趋势时较为有用。

  • 适合比较不同类别或组别之间的变化情况。

优点:

  • 适用于连续数据的变化展示。

  • 显示了数据在不同类别或组别间的变化趋势。

缺点:

  • 不适合展示离散数据的变化情况。

6.2多边形直方图

#插入代码块:多边形直方图
sns.histplot(data=penguins, 

            x="flipper_length_mm", 

            hue="species", 

            element="poly")

plt.grid(False)

plt.show()

多边形直方图应用场景与优缺点:

  • 展示连续数据的变化情况,类似于线图,但用面积表示而不是线段。

优点:

  • 适用于连续数据的变化展示。

  • 面积表示更能凸显变化幅度,尤其适合多个数据系列的比较。

缺点:

  • 不适合展示离散数据的变化情况。

07、二维直方图

#插入代码块:二维直方图
sns.histplot(penguins, 
             y="body_mass_g",
            x="bill_depth_mm",

            hue="species")

plt.grid(False)
plt.show()

适用场景:

  • 用于探索两个数值变量之间的关系和分布情况。

  • 适用于大规模数据的可视化。

优点:

  • 直观地展示了两个数值变量之间的关系和分布情况。

  • 适用于较大规模的数据,能有效显示数据点的密度情况。

  • 可以快速发现两个变量之间的关联和分布特征。

缺点:

  • 如果数据点较少或者有重叠,可能会导致信息显示不清晰,难以分辨。

关注微信公众号【小Z的科研日常】,后台回复关键词 [柱状图] 获取相关资料

  • 40
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小Z的科研日常

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值