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

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

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)
相关推荐
LCG元5 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
TDengine (老段)5 天前
TDengine IDMP 数据可视化——散点图
大数据·数据库·物联网·信息可视化·时序数据库·tdengine·涛思数据
发哥来了5 天前
主流GEO优化系统技术对比评测
人工智能·信息可视化
Youngchatgpt5 天前
数据科学家如何使用 ChatGPT?
人工智能·信息可视化·chatgpt
weixin_440401695 天前
Python数据分析-数据可视化(柱状图bar【双轴柱状图、动态柱状图】)
python·信息可视化·数据分析
2501_944934735 天前
高职数据可视化技术专业,怎么找远程的数据可视化兼职?
信息可视化
甲枫叶6 天前
【claude+weelinking产品经理系列16】数据可视化——用图表讲述产品数据的故事
java·人工智能·python·信息可视化·产品经理·ai编程
Highcharts.js6 天前
Highcharts热力图(Heatmap)完全指南:从基础配置到地理热力图,一文学会颜色轴数据可视化
信息可视化·数据可视化·热力图·heatmap·highcharts·地理热力图
2501_943695336 天前
高职数据可视化技术专业,怎么提升数据可视化的设计审美?
信息可视化·数据挖掘·数据分析
计算机学姐6 天前
基于SpringBoot的服装购物商城销售系统【协同过滤推荐算法+数据可视化统计】
java·vue.js·spring boot·mysql·信息可视化·mybatis·推荐算法