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

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

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)
相关推荐
躺柒1 天前
读数据可视化13空间标量场(上)
人工智能·深度学习·信息可视化·数据可视化·空间·大数据分析
2601_967097222 天前
园区巡检机器人推荐:4项评估维度与主流产品横评
大数据·人工智能·信息可视化
陈天伟教授2 天前
【30天学会机械制图 第11 天】项目二 简单的立体变成平面图形 任务3 认识曲面立体的三视图
平面·信息可视化·工程制图·机械制图·工程制图,机械制图
躺柒2 天前
读数据可视化12可视化设计原则
信息可视化·数据分析·可视化·数据可视化·大数据分析
AC赳赳老秦3 天前
企业标签体系搭建:基于 OpenClaw 采集的多维度公开数据,构建企业画像标签库
java·运维·服务器·python·信息可视化·deepseek·openclaw
BYSJMG3 天前
大数据毕业设计选题方向|【基于大数据的燃油消耗数据可视化与分析】Hadoop+PySpark+FP-Growth
大数据·hadoop·分布式·信息可视化·数据分析·课程设计
又折桃枝换酒钱3 天前
HiLSVA:人在回路的科学可视化智能体系统(翻译与解读)
信息可视化
躺柒3 天前
读数据可视化11数据可视化基础
大数据·信息可视化·数据分析·可视化·数据可视化·大数据分析
BYSJMG4 天前
计算机毕业设计选题推荐:基于大数据的心脏病风险数据可视化与分析(Hadoop+Spark+PySpark)
大数据·hadoop·信息可视化·数据分析·spark·课程设计
又折桃枝换酒钱4 天前
VisCoder2:构建多语言可视化编码智能体(翻译与解读)
人工智能·信息可视化