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

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

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

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

  • 工具 :matplotlib / seaborn / pyecharts

python 复制代码
import matplotlib.pyplot as plt
categories = ['A', 'B', 'C']
values = [25, 40, 30]
plt.bar(categories, values)
plt.show()
2. 折线图(Line Chart)
  • 功能:展示数据随时间变化的趋势。

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

python 复制代码
dates = ['Jan', 'Feb', 'Mar']
sales = [120, 150, 180]
plt.plot(dates, sales, marker='o')
plt.show()
3. 饼图(Pie Chart)
  • 功能:显示各部分占整体的比例。

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

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

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

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

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

python 复制代码
x = [1, 2, 3, 4, 5]
y = [2, 4, 5, 4, 5]
plt.scatter(x, y)
plt.show()
2. 热力图(Heatmap)
  • 功能:用颜色矩阵展示数据密度或相关性。

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

python 复制代码
import seaborn as sns
data = [[0.9, 0.2], [0.3, 0.8]]
sns.heatmap(data, annot=True)
plt.show()
3. 箱线图(Box Plot)
  • 功能:显示数据分布和异常值(四分位数)。

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

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

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

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

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

  • 工具 :folium / pyecharts / plotly

python 复制代码
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)
  • 功能:展示流量或状态转移路径。

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

python 复制代码
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)
  • 功能:多维度能力评估对比。

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

python 复制代码
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)
  • 功能:实时展示数据变化过程。

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

python 复制代码
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)报表、数据探索平台。

python 复制代码
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

python 复制代码
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)
  • 功能:结合箱线图和核密度估计。

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

python 复制代码
sns.violinplot(x="group", y="value", data=df)
plt.show()

六、如何选择图表?

目标 推荐图表
比较类别间数值 柱状图、条形图
显示数据分布 直方图、箱线图、小提琴图
展示时间趋势 折线图、面积图
揭示变量间关系 散点图、气泡图、热力图
部分与整体关系 饼图、环形图、旭日图
地理数据可视化 地图、等值线图
复杂流程/网络关系 桑基图、关系图(Graph)
相关推荐
小白学大数据6 小时前
R语言爬虫实战:如何爬取分页链接并批量保存
开发语言·爬虫·信息可视化·r语言
kaikaile199519 小时前
使用Python进行数据可视化的初学者指南
开发语言·python·信息可视化
数据饕餮3 天前
Python数据分析基础03:探索性数据分析
python·信息可视化·数据分析
wx_ywyy67984 天前
《推客分销系统架构设计:从零搭建高并发社交裂变引擎》
信息可视化·推客系统·推客小程序·推客系统开发·推客小程序开发·推客分销系统
云天徽上4 天前
【PaddleOCR】OCR常见关键信息抽取数据集,包含FUNSD、XFUND、WildReceipt等整理,持续更新中......
人工智能·计算机视觉·信息可视化·paddlepaddle·paddleocr·文本识别
杨超越luckly5 天前
ArcGISPro应用指南:ArcGISPro制图全流程详解
arcgis·信息可视化·gis·制图·arcgispro
GIS之路5 天前
GeoTools 结合 OpenLayers 实现属性查询(二)
前端·信息可视化
DataGear5 天前
如何在DataGear 5.4.1 中快速制作SQL服务端分页的数据表格看板
javascript·数据库·sql·信息可视化·数据分析·echarts·数据可视化
程序员阿超的博客5 天前
Python 数据分析与机器学习入门 (五):Matplotlib 数据可视化基础
python·信息可视化·数据分析·matplotlib·数据可视化·python教程·pyplot