数据可视化 —— 条形图应用(大全)

一、条形图的应用场景

1. 数据比较

  • 适用场景:对比不同类别、组别或时间点的数值差异。

  • 示例

    • 不同产品的销售额对比;

    • 各城市人口数量排名;

    • 部门间的年度预算分配。


2. 分类数据分布

  • 适用场景:展示分类数据的频数或比例。

  • 示例

    • 不同年龄段用户的占比;

    • 客户满意度调查中各评分等级(满意、一般、不满意)的分布。


3. 时间趋势(少量时间点)

  • 适用场景:当时间点较少时,用条形图展示随时间变化的趋势。

  • 对比:时间点较多时更适合折线图。

  • 示例

    • 某公司近5年的年利润变化;

    • 月度新增用户数对比(全年12个月可能更适合折线图)。


4. 部分与整体关系(堆叠条形图)

  • 适用场景:既展示类别总体的对比,又显示各子类别的构成。

  • 示例

    • 不同地区的销售额中,各产品线的贡献比例;

    • 某国家能源结构中化石能源、核能、可再生能源的占比。


5. 排名或排序

  • 适用场景:直观显示数据从高到低(或相反)的排序。

  • 技巧:将数据按大小排序后绘制条形图。

  • 示例

    • 全球十大人口最多国家排名;

    • 学生考试成绩从高到低排列。


6. 地理或区域对比

  • 适用场景:比较不同地区的数据差异。

  • 示例

    • 各省份GDP对比;

    • 各国家碳排放量对比。


7. 市场或竞品分析

  • 适用场景:分析不同品牌、产品在市场份额、用户评价等方面的表现。

  • 示例

    • 手机品牌市场份额对比;

    • 竞品功能评分对比。


8. 资源分配或成本分析

  • 适用场景:展示资源在不同项目或部门中的分配情况。

  • 示例

    • 公司各部门的预算分配;

    • 家庭开支中各项支出占比。


9. 调查结果可视化

  • 适用场景:呈现问卷调查、投票结果等。

  • 示例

    • 用户偏好的支付方式统计;

    • 员工对办公环境的满意度调查结果。


10. 目标与实际对比

  • 适用场景:对比计划目标与实际完成情况。

  • 示例

    • 销售团队目标销售额与实际达成额的对比;

    • 项目进度里程碑的完成情况。


选择条形图的优势

  • 直观性:通过条形的长短快速识别数据大小。

  • 灵活性:支持水平(柱状图)或垂直(条形图)布局,适应不同场景。

  • 多维度扩展:可通过堆叠、分组、颜色区分展示更复杂的数据关系。

二、基础用法

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.style as ms

# 设置主题风格
# classic、fast、petroff10、seaborn-v0_8-colorblind
ms.use('seaborn-v0_8-colorblind')
plt.figure(num='条形图', figsize=(12, 8), facecolor='w')
plt.rcParams['font.sans-serif'] = 'KaiTi'
plt.rcParams['axes.unicode_minus'] = False

y = np.arange(5)
x1 = np.array([10,8,7,11,13])
x2 = np.array([28,26,20,25,28])
x3 = np.array([20,18,21,18,25])

bar_height = 0.3
plt.yticks(y,['1月','2月','3月','4月','5月'])

# 数据显示
for a,b in zip(x1,y):
    plt.text(a+0.3,b,'%d' %a,va='center',color='k')
plt.barh(y,x1,height=bar_height)

for a,b in zip(x2,y+bar_height):
    plt.text(a+0.3,b,'%d' %a,va='center',color='k')
plt.barh(y+bar_height,x2,height=bar_height)

for a,b in zip(x3,y+2*bar_height):
    plt.text(a+0.3,b,'%d' %a,va='center',color='k')
plt.barh(y+2*bar_height,x3,height=bar_height)

plt.show()

三、不同产品的销售额对比

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


# 设置主题风格
#  classic、fast、petroff10、seaborn-v0_8-colorblind
ms.use('seaborn-v0_8-colorblind')
plt.figure(num='条形图', figsize=(12, 8), facecolor='w')
plt.rcParams['font.sans-serif'] = 'KaiTi'
plt.rcParams['axes.unicode_minus'] = False

df = pd.read_excel('不同产品各季度的销售额.xlsx')
y = np.arange(len(df['季度']))
x = []
x.append(df['产品A'])
x.append(df['产品B'])
x.append(df['产品C'])

bar_height = 0.2
plt.title('不同产品各季度的销售额条形图', fontfamily='SimHei', fontsize=20, color='r')
# rotation:角度
plt.yticks(y, df['季度'], rotation=-0)
plt.ylabel('季度', fontsize=16)
plt.xlabel('销售额(万元)', fontsize=16)

for i in range(len(x)):
    plt.barh(y + i * bar_height, x[i], height=bar_height, align='edge')
    for a, b in zip(x[i], y + i * bar_height):
        plt.text(a+bar_height, b, '%d' % a, va='bottom')

plt.legend(['产品A', '产品B', '产品C', ], shadow=True, fancybox=True)
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小白—人工智能

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

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

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

打赏作者

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

抵扣说明:

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

余额充值