比较与排序类可视化图像

news/2025/3/26 5:26:46/文章来源:https://www.cnblogs.com/yqy0601/p/18788896

一、 柱状图(Bar Chart)

1.特点:

      柱状图通过柱子的高度或长度表示数据的大小,柱子可以是垂直的(柱状图)或水平的(条形图)。柱状图直观、易于理解,适合展示离散数据。

2.应用场景:

        比较不同类别的数据(如销售额、人口数量);
        展示时间序列数据(如月度销售额)。
3.优点:
        简单直观,适合大多数场景;
       易于添加标签和注释。
4.缺点:
       不适合展示过多类别(容易显得杂乱);
       无法展示数据的变化趋势。
5.实现:

import matplotlib.pyplot as plt
import seaborn as snscategories = ['A', 'B', 'C', 'D']
values = [10, 20, 15, 25]plt.bar(categories, values, color='skyblue')
plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Bar Chart Example')
plt.show()

结果:生成一个垂直柱状图,柱子高度表示每个类别的值。

 

二、环形柱状图(Circular Bar Chart)
1.特点:
     环形柱状图是柱状图的变体,柱子围绕一个圆形排列,适合展示周期性数据或类别较多的数据。
2.应用场景:
     展示周期性数据(如月份、星期);
     比较多个类别的数据(如不同产品的年度销量)。
3.优点:
      视觉效果新颖,适合展示较多类别;
     适合展示周期性数据。
4.缺点:
      阅读难度较高,不适合精确比较;
      实现复杂度较高。
5.实现工具:

import matplotlib.pyplot as plt
import numpy as npcategories = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
values = [10, 20, 15, 25, 30, 35, 40, 45]angles = np.linspace(0, 2 * np.pi, len(categories), endpoint=False).tolist()
values += values[:1]
angles += angles[:1]fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})
ax.plot(angles, values, 'o-', linewidth=2, color='blue')
ax.fill(angles, values, color='blue', alpha=0.25)
ax.set_yticklabels([])
ax.set_xticks(angles[:-1])
ax.set_xticklabels(categories)
plt.title('Circular Bar Chart Example')
plt.show()

    结果:生成一个环形柱状图,柱子围绕圆形排列,高度表示每个类别的值。

 

三、子弹图(Bullet Graph)

1.特点:
        子弹图通过一个主条(实际值)和一个或多个参考条(目标值)展示数据,适合在有限空间内展示绩效数据。
2.应用场景:
        绩效评估(如销售额是否达到目标);
        KPI(关键绩效指标)展示。
3.优点:
       简洁高效,适合展示目标与实际值的对比;
      占用空间小。
4.缺点:
      不适合展示多维度数据;
       实现复杂度较高。
5.实现工具:

import matplotlib.pyplot as pltfig, ax = plt.subplots()
ax.barh(0, 75, height=0.5, color='lightgrey')  # 背景条
ax.barh(0, 50, height=0.3, color='blue')  # 实际值
ax.axvline(60, color='red', linestyle='--', linewidth=2)  # 目标值
ax.set_xlim(0, 100)
ax.set_yticks([])
plt.title('Bullet Graph Example')
plt.show()

结果:生成一个水平子弹图,蓝色条表示实际值,红色虚线表示目标值。

四、哑铃图(Dumbbell Plot)

1.特点:
      哑铃图通过连接两个点的线段展示数据的变化,适合展示两个时间点或条件下的数据差异。
2.应用场景:
      比较两个时间点的数据(如不同年份的销售额);
      展示不同条件下的数据变化(如不同地区的温度变化)。
3.优点:
      直观展示数据变化;
      适合展示少量类别的数据。
4.缺点:
      不适合展示多维度数据;
      实现复杂度较高。
5.实现:

import matplotlib.pyplot as pltcategories = ['A', 'B', 'C', 'D']
start_values = [10, 20, 15, 25]
end_values = [15, 25, 20, 30]for i, (start, end) in enumerate(zip(start_values, end_values)):plt.plot([start, end], [i, i], marker='o', color='blue', markersize=10)plt.yticks(range(len(categories)), categories)
plt.xlabel('Values')
plt.title('Dumbbell Plot Example')
plt.show()

结果:生成一个哑铃图,每个类别的两个点通过线段连接,表示数据的变化。

 

五、雷达图(Radar Chart)
1.特点:
      雷达图通过多个轴展示多维数据,适合展示多个维度的比较。
2.应用场景:
      技能评估(如员工技能的多维度比较);
      产品特性比较(如不同产品的性能指标)。
3.优点:
      适合展示多维数据;
      视觉效果突出。
4.缺点:
 不适合展示过多维度。
5.实现:

import matplotlib.pyplot as plt
import numpy as npcategories = ['A', 'B', 'C', 'D', 'E']
values = [4, 3, 2, 5, 1]angles = np.linspace(0, 2 * np.pi, len(categories), endpoint=False).tolist()
values += values[:1]
angles += angles[:1]fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})
ax.plot(angles, values, 'o-', linewidth=2, color='blue')
ax.fill(angles, values, color='blue', alpha=0.25)
ax.set_yticklabels([])
ax.set_xticks(angles[:-1])
ax.set_xticklabels(categories)
plt.title('Radar Chart Example')
plt.show()

 

结果:生成一个雷达图,每个轴表示一个维度,多边形表示数据值。

 

六、平行坐标图(Parallel Coordinates Plot)
1.特点:
       平行坐标图通过多个平行轴展示高维数据,适合展示数据的模式和关系。
2.应用场景:
      高维数据的可视化(如机器学习特征分析);
      多维数据比较(如不同产品的多个指标)。
3.优点:
      适合展示高维数据;
      可以展示数据的模式和关系。
4.缺点:
      阅读难度较高;
     不适合展示过多数据点。
5.实现:

import pandas as pd
from pandas.plotting import parallel_coordinates
import matplotlib.pyplot as pltdata = pd.DataFrame({'Feature1': [1, 2, 3, 4],'Feature2': [4, 3, 2, 1],'Feature3': [2, 4, 1, 3],'Class': ['A', 'B', 'A', 'B']
})parallel_coordinates(data, 'Class', color=('blue', 'red'))
plt.title('Parallel Coordinates Plot Example')
plt.show()

 

结果:生成一个平行坐标图,每个轴表示一个特征,线条表示不同类别的数据。

 

七、词云图(Word Cloud)
1.特点:
       词云图通过字体大小展示词语的频率,适合展示文本数据中的关键词。
2.应用场景:
      文本分析(如新闻关键词提取);
      舆情分析(如社交媒体评论的热门话题)。
3.优点:
    直观展示文本关键词;
    视觉效果突出。
4.缺点:
    无法展示精确数据;
    不适合展示非文本数据。
5.实现

from wordcloud import WordCloud
import matplotlib.pyplot as plttext = "Python is a great language for data analysis and visualization. Python is widely used in data science."wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.title('Word Cloud Example')
plt.show()

 

结果:生成一个词云图,词语的大小表示其在文本中的频率。

 

比较总结

图表类型适用场景优点缺点
柱状图 比较不同类别的数据 简单直观,易于理解 不适合展示过多类别
环形柱状图 展示周期性数据或较多类别的数据 视觉效果新颖,适合展示周期性数据 阅读难度较高,实现复杂
子弹图 展示目标值与实际值的对比 简洁高效,适合绩效评估 不适合展示多维度数据
哑铃图 展示两个时间点或条件下的数据变化 直观展示数据变化 不适合展示多维度数据
雷达图 展示多维数据的比较 适合展示多维数据 阅读难度较高,不适合过多维度
平行坐标图 展示高维数据的模式和关系 适合展示高维数据 阅读难度较高,不适合过多数据点
词云图 展示文本数据中的关键词 直观展示文本关键词 无法展示精确数据

 

选择建议

     简单比较,选择 柱状图;
    展示周期性数据,选择 环形柱状图;
    展示目标值与实际值的对比,选择 子弹图;
    展示数据的变化趋势,选择 哑铃图;
    展示多维数据的比较,选择 雷达图

    展示高维数据的模式和关系,选择 平行坐标图;

    展示文本数据中的关键词,选择词云图。

通过合理选择图表类型,可以更有效地传达数据信息,提升数据分析的效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/904703.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《ESP32-S3使用指南—IDF版 V1.6》第十三章 UART实验

第十三章 UART实验 1)实验平台:正点原子DNESP32S3开发板 2)章节摘自【正点原子】ESP32-S3使用指南—IDF版 V1.6 3)购买链接:https://detail.tmall.com/item.htm?&id=768499342659 4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/esp32/ATK-…

AI与.NET技术实操系列(九):总结篇 ── 探讨.NET 开发 AI 生态:工具、库与未来趋势

1. 引言 本文作为本系列的最后一篇,旨在全面探讨 .NET 生态中与 AI 相关的工具、库、框架和资源,帮助开发者了解如何在 .NET 环境中开发 AI 应用。我们将分析 Microsoft 的 AI 战略、核心工具和库(如 ML.NET、Azure AI SDK 和 Semantic Kernel)、.NET 9 的新特性,以及社区…

windows 查询内存型号

1、通过任务管理器-性能 2、运行-cmd wmic memorychip get Speed,SMBIOSMemoryType根据返回的 SMBIOSMemoryType 值判断:24 表示 DDR3 26 表示 DDR4 34 表示 DDR5。‌2

更换数据库连接池失败

更换数据库连接池失败 将数据库连接池更换为druid,一直无法更换,保持默认的HiKari原因: 配置文件代码错误,在下图中,可以看见一个黄线的警告,这里出现了关键词错误.这个错误是导致出现配置失败的原因. 教训:配置文件的警告需要引起足够的重视.

SANA-Sprint:基于连续时间一致性蒸馏的单步扩散模型,0.1秒即可生成图像

扩散模型已成为现代文本到图像 (T2I) 生成技术的核心,能够生成高质量图像,但其迭代式推理过程导致生成速度缓慢。多数模型通常需要 20–50 个去噪步骤,这严重制约了其在实时应用中的部署。 现有的蒸馏技术旨在加速扩散模型的采样过程,然而,这些方法往往会引入稳定性问题,…

华为无线网络射频调优及WLAN跨VLAN的三层漫游示例

1.业务需求企业用户通过WLAN接入网络,以满足移动办公的最基本需求。 在覆盖区域内移动发生跨VLAN的漫游时,不影响用户的业务使用。2.组网需求AC组网方式:旁挂三层组网。DHCP部署方式:AC作为DHCP服务器为AP分配IP地址。 汇聚交换机SwitchB作为DHCP服务器为STA分配IP地址。业…

大型通用电子制造执行系统(MES)

​简介:系统参考西门子MOM智能制造Opcenter工业软件制造执行系统Camstar电子套件人机料法环数据建模业务对象和车间生产执行事务逻辑,采用面向对象分层设计与C#编程开发:包含电子制造企业人机料法环业务数据建模实体对象,数据实体持久化映射,数据工厂会话配置,车间生产服务…

物料需求波动大、生产计划变化频繁?一文教你用工厂ERP系统MRP精确计算生产物料!

今天咱们来聊一聊一个大多数工厂都会遇到的问题: 物料需求波动大 和 生产计划变化频繁 。 这些问题可能让你在生产过程中经常“踩雷”,比如物料没采购够,生产停工; 或者物料买多了,库存积压,浪费了钱。有没有办法避免这些问题呢? 答案是: 有 !那就是通过工厂的 ERP系统…

docker使用GPU总结

在docker容器中使用显卡 一 docker19.03以前的事情 1.1 指定显卡硬件名 最初的容器中使用显卡,需要指定硬件名。经历了两种方式使用lxc驱动程序运行docker守护进程,以便能够修改配置并让容器访问显卡设备(非常麻烦,参考链接中最久远的回答)Docker 0.9中放弃了lxc作为默认执…

掌握 K8s Pod 基础应用 (二)

Pod生命周期 我们一般将pod对象从创建至终的这段时间范围称为pod的生命周期,它主要包含下面的过程:pod创建过程运行初始化容器(init container)过程运行主容器(main container)容器启动后钩子(post start)、容器终止前钩子(pre stop)容器的存活性探测(liveness prob…

叉车人员防撞报警系统

叉车人员防撞报警系统采用机器视觉图像感知技术,通过人工智能深度学习技术,对行人和车辆的精确检测,叉车人员防撞报警系统实现对人体和车辆检测分析识别,在机器视觉图像景中,通过特征识别算法建立人体和车辆图像模型,完成自动识别目标,并能以视觉图像智能分析精确区分干…

课堂在线点名助手

适合老师上课随机提问学生的小工具。前情概要 为提高程序的普适性,学生姓名用学号代替。 在线点卯在线提问点名助手body0 { font-family: Arial, sans-serif; background-image: url(https://img2024.cnblogs.com/blog/992978/202503/992978-20250324092106498-1518746661.jpg…