汇总
柱状图合集
python
总结交流
创新务实
引
言
在数据时代,数据可视化图表是解读数据故事的关键。本文将详述柱状图、并列柱状图、对称柱状图及条形图等,让您了解其定义与应用场景,助您精准选择并展示数据,高效传递数据价值。
★ 目 录 ★
01
堆叠柱状图
02
堆叠面积图
03
百分比堆叠柱状图
04
百分比堆叠面积图
05
柱状图
06
并列柱状图
07
对称柱状图
08
条形图
PART.1
堆叠柱状图
简介
堆叠柱状图,它通过堆叠的方式在单一柱子内展示多个类别的数据,以揭示每个类别在总体中的贡献或占比。
堆叠柱状图将每个柱子进行分割,以显示相同类型下各个数据的大小情况。每一根柱子上的值分别代表不同的数据大小,而每一层又代表不同分类的数据,不同分类数据的总和代表整根柱子的高度。
适用场景
堆叠柱状图适用于比较每个分组的数据总量,以及每个分组内部各个小分类的数据大小和占比。它常用于销售数据的比较、市场份额分析、产品组合优化等场景。例如,可以使用堆叠柱状图来展示不同产品一年的销售额在每个月的对比,或者不同销售渠道的销售额对比。
代码
# 导入库# 读取数据
# 创建堆积柱状图bar_width = 0.5index = range(len(x1))
# 调整横坐标标签间距并手动设置刻度位置和对齐方式plt.bar(index, y1, label='data1', width=bar_width, align='center', color='#2371A9', edgecolor='steelblue')plt.bar(index, y2, label='data2', bottom=y1, width=bar_width, align='center', color='#EC7C20', edgecolor='orange')plt.bar(index, y3, label='data3', bottom=y1 + y2, width=bar_width, align='center', color='#319838', edgecolor='green)
# 设置图表标题和标签# 添加图例# 显示图表
样图
PART.2
堆叠面积图
简介
堆叠面积图,用于展示多个类别或变量在某个时间段或数据区间内累积量或占比情况的数据可视化图表。
堆叠面积图将多个数据集按照顺序叠加显示,每个数据集都表示为一个从x轴开始、到该数据集值结束的面积区域。这些区域按照数据集的顺序堆叠在一起,形成一个整体的面积图。
适用场景
1.需要比较多个变量在总体中的比例和变化趋势。
2.需要突出不同变量之间的相对大小和变化。
3.需要展示多个变量的总和和每个变量的贡献程度。
代码
# 导入库# 读取数据
# 绘制堆叠面积图plt.fill_between(x1, 0, y1, label='data1', alpha=0.7 , color='#2371A9')plt.fill_between(x1, y1, y1 + y2, label='data2', alpha=0.7, color='#EC7C20')plt.fill_between(x1, y1 + y2, y1 + y2 + y3, label='data3', alpha=0.7, color='#319838')
# 设置图表标题和标签# 添加图例# 显示图表
样图
PART.3
百分比堆叠柱状图
简介
百分比堆叠柱状图,用于展示不同分类下各子分类数据在总体中所占百分比的可视化图表。它通过在同一柱状图中堆叠不同颜色或纹理的条形区域,来清晰表示每个子分类在父分类中的比例关系。
百分比堆叠柱状图属于堆叠柱状图的一种特殊形式,其中每个柱子的高度代表一个父分类的总体数据,而柱子内部不同颜色或纹理的条形区域则代表该父分类下各子分类的数据在总体中所占的百分比。所有子分类的条形区域加起来的总高度与该父分类的柱子高度相等,均为100%。
适用场景
1.需要比较不同分类下各子分类数据在总体中所占的百分比。
2.需要展示各子分类数据在总体中的分布情况。
3.需要强调各子分类数据之间的比例关系。
例如,在市场调研中,可以使用百分比堆叠柱状图来展示不同年龄段人群对某种产品的购买偏好,其中每个柱子代表一个年龄段,柱子内部的不同颜色区域代表该年龄段下不同性别或收入水平的购买者所占的百分比。
代码
# 导入库# 读取数据
# 计算百分比堆叠的值,确保三者之和为100%percentage_y1 = (y1 / (y1 + y2 + y3)) * 100percentage_y2 = (y2 / (y1 + y2 + y3)) * 100percentage_y3 = (y3 / (y1 + y2 + y3)) * 100
# 创建百分比堆叠柱状图bar_width = 0.5index = range(len(x1))
# 调整横坐标标签间距并手动设置刻度位置和对齐方式plt.bar(index, percentage_y1, label='data1', width=bar_width, align='center' , color='#2371A9')plt.bar(index, percentage_y2, label='data2', bottom=percentage_y1, width=bar_width, align='center', color='#EC7C20')plt.bar(index, percentage_y3, label='data3', bottom=percentage_y1 + percentage_y2, width=bar_width, align='center', color='#319838')
# 设置图表标题和标签# 添加图例# 显示图表
样图
PART.4
百分比堆叠面积图
简介
百分比堆叠面积图,旨在通过堆叠不同颜色的面积区域来展示不同类别数据在总体中所占的百分比。
百分比堆叠面积图在堆叠面积图的基础上,将各个数据集的数值进行归一化处理,使得每个数据集的面积表示其在总体中所占的百分比。因此,所有堆叠在一起的面积区域总和始终等于100%,直观展示了不同类别数据在整体中的分布和比例。
适用场景
1.直观展示占比:百分比堆叠面积图可以直观地展示每个数据集在总体中所占的百分比,便于比较不同类别的相对大小。
2.强调相对关系:这种图表类型特别强调各部分与整体之间的相对关系,而不是它们的绝对数值。因此,它适用于分析不同变量在总体中的贡献度或占比情况。
3.适用于时间序列数据:由于X轴通常表示时间,因此百分比堆叠面积图特别适用于展示多个变量随时间变化的占比情况。例如,可以用于分析不同产品在不同时间段的市场份额变化。
代码# 导入库# 读取数据
# 计算百分比堆积的值,确保三个系数之和为100%percentage_y1 = (y1 / (y1 + y2 + y3)) * 100percentage_y2 = (y2 / (y1 + y2 + y3)) * 100percentage_y3 = (y3 / (y1 + y2 + y3)) * 100
# 绘制百分比堆叠面积图plt.fill_between(x1, 0, percentage_y1, label='data1', alpha=0.7 , color='#2371A9')plt.fill_between(x1, percentage_y1, percentage_y1 + percentage_y2, label='data2', alpha=0.7, color='#EC7C20')plt.fill_between(x1, percentage_y1 + percentage_y2, percentage_y1 + percentage_y2 + percentage_y3, label='data3', alpha=0.7, color='#319838')
# 设置图表标题和标签# 添加图例# 显示图表
样图
PART.5
柱状图
简介
柱状图,用于展示分类数据的数值大小。它通过一系列垂直的柱子来表示不同类别的数据值,从而直观地反映数据之间的差异和比较关系。
柱状图是一种离散型数据的可视化图表,其特点在于使用柱子(条形)的高度来表示数据的数量或大小。每个柱子通常代表一个特定的类别或组别,而柱子的高度则与该类别或组别的数据值成正比。柱状图可以清晰地展示不同类别之间的数值对比,有助于读者快速理解数据的分布和趋势。
适用场景
1.展示不同类别数据的数量或大小,如销售额、人口数量、考试成绩等。
2.比较不同类别数据之间的差异和趋势,如不同产品的销售对比、不同地区的人口分布等。
3.揭示数据中的异常值或关键点,如销售高峰、低谷等。
代码
# 导入库# 读取数据
# 创建柱状图x = np.arange(len(categories))bars = plt.bar(x, values, width=0.5, align='center', color='steelblue', label='数据系列标签',hatch='\\\\',edgecolor='blue', alpha=1 )
# 设置图标题和XY轴标题plt.title('Title', fontsize=15, fontfamily='Times New Roman')plt.xlabel('xlabel', fontsize=14, fontfamily='Times New Roman')plt.ylabel('ylabel', fontsize=14, fontfamily='Times New Roman')
# 设置图表标题和标签# 添加图例# 显示图表
样图
PART.6
并列柱状图
简介
并列柱状图,用于比较不同类别下多个子类别数据量的数据可视化图表。主要特点在于能够清晰地展示多个子类别在不同类别之间的数据对比,有助于读者快速理解数据的分布和差异。
并列柱状图是一种离散型数据的可视化图表,它通过在同一类别轴上并列展示多个柱状图来比较不同子类别之间的数据大小。每个柱状图的高度或长表示对应子类别的数据值,不同颜色或纹理的柱状图用于区分不同的子类别。
适用场景
1.需要比较不同主类别下多个子类别的数据量大小。
2.需要展示不同子类别在不同主类别之间的数据对比和差异。
3.强调多个子类别之间的相对大小和比例关系。
代码
# 导入库# 读取数据
# 确定柱子的数量num_categories = len(categories)
# 设置每个柱子的宽度bar_width = 0.2
# 重新计算X轴坐标位置x = np.arange(num_categories)
# 填充图案柱状图plt.bar(x, data1, width=bar_width, label='data1' , color='#2371A9', edgecolor='steelblue', hatch='//', alpha=0.7)plt.bar(x + bar_width, data2, width=bar_width, label='data2', color='#EC7C20', edgecolor='orange', hatch='\\\\', alpha=0.9)plt.bar(x + 2 * bar_width, data3, width=bar_width, label='data3', color='#319838', edgecolor='green', hatch='xx', alpha=0.9)
# 显示数据标签# 设置图表标题和标签# 添加图例# 显示图表
样图
PART.7
对称柱状图
简介
对称柱状图,其特点在于通过一种对称的展示方式,使得数据的正负或对比情况一目了然。这种图表类型在对比两个或多个数据集时特别有用,尤其是当需要同时显示正数和负数,或者需要强调两个数据集之间的对比关系时。
适用场景
1.财务数据分析:在财务分析中,对称柱状图常被用于展示公司的收入与支出情况,或者展示不同部门之间的预算与实际支出对比。
2.市场调研:在市场调研中,对称柱状图可用于展示不同产品或品牌的正负面评价数量,或者展示不同用户群体对产品或服务的满意度对比。
3.科学研究:在科学研究中,对称柱状图可用于展示实验数据中的正负效应,或者展示不同实验组之间的对比结果。
代码
# 导入库# 读取数据 # 绘制第一组条形图 plt.bar(X, Y1, facecolor='red', edgecolor='white', alpha=0.6) # 绘制第二组条形图(注意X的偏移) plt.bar(X, -Y2, facecolor='blue', edgecolor='white', alpha=0.6) # 为第一组条形图添加文本标签 for x, y in zip(X, Y1): plt.text(x, y+0.05, '%.2f' % y, ha='center', va='bottom', fontsize=12) # 为第二组条形图添加文本标签 for x, y in zip(X, -Y2): plt.text(x, y-0.05, '%.2f' % -y, ha='center', va='top', fontsize=12)
# 设置图表标题和标签# 添加图例# 显示图表
样图
PART.8
条形图
简介
条形图是一种离散型数据的可视化工具,它通过条形的长度或高度直观地展示不同类别数据的数值大小。与柱状图类似,条形图也用于比较不同类别之间的数据差异,但条形图通常将类别标签放置在条形的一侧(垂直条形图)或下方(水平条形图),而数值则通过条形的长度或高度表示。条形图的主要特点在于其简洁明了、易于解读,能够快速地传达数据之间的对比关系。
适用场景
1.比较不同类别的数据量:当需要对比不同类别之间的数据大小时,条形图是一种直观有效的展示方式。
2.展示分类数据的分布情况:条形图可以清晰地展示分类数据在各个类别中的分布情况,有助于识别数据的集中趋势和离散程度。
3.数据中的关键信息:通过调整条形的颜色、纹理等属性,可以强调数据中的关键信息或异常值,从而引导读者关注重要的数据点。
代码
# 导入库# 读取数据 # 创建条形图 fig, ax = plt.subplots() bars = ax.barh(ind, values, align='center', color='steelblue', label='数据系列标签', hatch='\\\\', edgecolor='blue', alpha=1) # 设置X轴和Y轴的标签 ax.set_yticks(ind) ax.set_yticklabels(categories, fontsize=13) ax.set_xlabel('ylabel', fontsize=14) ax.set_ylabel('xlabel', fontsize=14) ax.set_title('Title', fontsize=15) # 添加每根条的数据标签 # 设置图表标题# 显示图表
样图
工作总结
这些图表不仅能够帮助我们快速发现数据中的关键信息和趋势,还能够有效地传达数据背后的价值和意义,为决策提供支持。因此,掌握这些图表的特点和应用场景对于数据驱动的决策和沟通至关重要。
欢迎交流讨论
编辑 / 少闲
微信号 :shaoxian0246