当前位置: 首页 > news >正文

数据可视化中常用的图表类型 及其适用场景,涵盖基础到高级,帮助你根据数据类型和展示目标选择合适的图表:

一、基础图表(单变量分析)

1. 柱状图(Bar Chart)
  • 功能:比较不同类别的数值大小。

  • 场景:销售额对比、城市人口排名。

  • 工具matplotlib / seaborn / pyecharts

import matplotlib.pyplot as plt
categories = ['A', 'B', 'C']
values = [25, 40, 30]
plt.bar(categories, values)
plt.show()

2. 折线图(Line Chart)
  • 功能:展示数据随时间变化的趋势。

  • 场景:股票价格波动、气温变化。

dates = ['Jan', 'Feb', 'Mar']
sales = [120, 150, 180]
plt.plot(dates, sales, marker='o')
plt.show()

3. 饼图(Pie Chart)
  • 功能:显示各部分占整体的比例。

  • 场景:市场份额、预算分配。

labels = ['Food', 'Rent', 'Travel']
sizes = [30, 50, 20]
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.show()


二、进阶图表(多变量关系)

1. 散点图(Scatter Plot)
  • 功能:观察两个变量之间的相关性。

  • 场景:身高体重关系、广告投入与销量。

x = [1, 2, 3, 4, 5]
y = [2, 4, 5, 4, 5]
plt.scatter(x, y)
plt.show()

2. 热力图(Heatmap)
  • 功能:用颜色矩阵展示数据密度或相关性。

  • 场景:网站点击热区、变量相关系数矩阵。

import seaborn as sns
data = [[0.9, 0.2], [0.3, 0.8]]
sns.heatmap(data, annot=True)
plt.show()

3. 箱线图(Box Plot)
  • 功能:显示数据分布和异常值(四分位数)。

  • 场景:收入分布分析、实验数据异常检测。

data = [np.random.normal(0, std, 100) for std in range(1, 4)]
plt.boxplot(data)
plt.show()

三、高级图表(复杂数据)

1. 地理信息图(Geospatial Map)
  • 功能:结合地理位置展示数据分布。

  • 场景:疫情分布、人口密度。

  • 工具folium / pyecharts / plotly

import folium
m = folium.Map(location=[35, 110], zoom_start=4)
folium.Marker([39.9, 116.4], popup='北京').add_to(m)
m.save('map.html')
2. 桑基图(Sankey Diagram)
  • 功能:展示流量或状态转移路径。

  • 场景:用户行为路径、能源流动。

from pyecharts.charts import Sankey
nodes = [{"name": "A"}, {"name": "B"}, {"name": "C"}]
links = [{"source": "A", "target": "B", "value": 10}]
Sankey().add("", nodes, links).render("sankey.html")
3. 雷达图(Radar Chart)
  • 功能:多维度能力评估对比。

  • 场景:球员能力分析、产品特性评估。

from pyecharts.charts import Radar
schema = [{"name": "进攻", "max": 100}, {"name": "防守", "max": 100}]
data = [[{"name": "球员A", "value": [90, 70]}]]
Radar().add_schema(schema).add("", data).render("radar.html")

四、动态交互图表

1. 动态折线图(Animation)
  • 功能:实时展示数据变化过程。

  • 场景:实时监控、动态数据流。

import matplotlib.animation as animation
fig, ax = plt.subplots()
line, = ax.plot([], [])
def animate(i):line.set_data(range(i), np.random.rand(i))return line,
ani = animation.FuncAnimation(fig, animate, frames=20, interval=200)
plt.show()
2. 交互式仪表盘(Dashboard)
  • 工具Dash / Streamlit / Panel

  • 场景:商业智能(BI)报表、数据探索平台。

import dash
import dash_core_components as dcc
app = dash.Dash()
app.layout = dcc.Graph(figure={'data': [{'x': [1,2], 'y': [3,1], 'type': 'bar'}]})
app.run_server(debug=True)

五、专业领域图表

1. 金融图表(Candlestick)
  • 功能:展示股票开盘、收盘、最高、最低价。

  • 工具mplfinance / plotly

import mplfinance as mpf
data = pd.read_csv('stock.csv', index_col=0, parse_dates=True)
mpf.plot(data, type='candle', volume=True)
2. 生物医学图表(Violin Plot)
  • 功能:结合箱线图和核密度估计。

  • 场景:基因表达分布、药物反应数据。

sns.violinplot(x="group", y="value", data=df)
plt.show()

六、如何选择图表?

目标推荐图表
比较类别间数值柱状图、条形图
显示数据分布直方图、箱线图、小提琴图
展示时间趋势折线图、面积图
揭示变量间关系散点图、气泡图、热力图
部分与整体关系饼图、环形图、旭日图
地理数据可视化地图、等值线图
复杂流程/网络关系桑基图、关系图(Graph)

http://www.xdnf.cn/news/1083907.html

相关文章:

  • 【论文笔记】【强化微调】Pixel Reasoner:早期 tool call 的调用
  • react当中的this指向
  • 【从0-1的CSS】第3篇:盒子模型与弹性布局
  • 《前端路由重构:解锁多语言交互的底层逻辑》
  • 3. lvgl 9.3 vscode 模拟环境搭建 lv_port_pc_vscode-release-v9.3
  • Paimon索引概述
  • vue3.4中的v-model的用法~
  • 支持向量机(SVM)在肝脏CT/MRI图像分类(肝癌检测)中的应用及实现
  • 从源码到思想:OneCode框架模块化设计如何解决前端大型应用痛点
  • Application的onLowMemory从Android API 34开始系统不再触发,从API 35开始废弃
  • 【BTC】协议(共识机制)
  • 自定义指令
  • java+vue+SpringBoo职业生涯规划系统(程序+数据库+报告+部署教程+答辩指导)
  • 【AI大模型】Spring AI 基于mysql实现对话持久存储详解
  • 多模态大语言模型arxiv论文略读(149)
  • 【网络协议安全】任务13:ACL访问控制列表
  • 深度学习图像分类数据集—蘑菇可食性识别分类
  • 使用Python将PDF转换成word、PPT
  • 量子计算机技术(第二节,到底什么是量子)
  • 【CSS-15】深入理解CSS transition-duration:掌握过渡动画的时长控制
  • 高速信号眼图
  • ASP.NET代码审计 Web Forms框架 SQL注入漏洞
  • 【Python】使用读取到的文件
  • 零成本搭建浏览器远程Linux桌面:Ubuntu/Debian方案全解析
  • MySQL数据库主从复制
  • python-if结构、三目运算符
  • 善用关系网络:开源AI大模型、AI智能名片与S2B2C商城小程序赋能下的成功新路径
  • 知识文档管理系统选型指南(中小企业专用)
  • CppCon 2018 学习:What Do We Mean When We Say Nothing At All?
  • 一文掌握Qt Quick数字图像处理项目开发(基于Qt 6.9 C++和QML,代码开源)