时间趋势类可视化图像总结

部署运行你感兴趣的模型镜像

时间趋势类可视化图像总结

时间序列数据分析是许多领域的核心任务,从金融到运维监控,选择合适的数据可视化图表能够直观展示趋势、波动和异常。本文将介绍地平线图、河流图、瀑布图、烛形图等经典时间趋势类图表的特性、应用场景,并提供基于Python的代码实现


一、地平线图(Horizon Chart)
特点:
• 通过分层和颜色深浅压缩垂直空间,支持多指标对比。

• 正负值用不同颜色区分,适合高密度时间序列展示。

应用场景:
• 服务器多维度监控(CPU、内存、流量)。

• 股票市场中多支股票的价格波动对比。

Python实现:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# 设置中文字体(避免中文乱码)
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用 SimHei 字体
plt.rcParams['axes.unicode_minus'] = False   # 解决负号显示问题

# 生成数据
np.random.seed(42)
dates = pd.date_range('2023-01-01', periods=72)
values = np.random.randn(72).cumsum() + 50

# 分3层绘制地平线图
num_bands = 3
fig, axes = plt.subplots(num_bands, 1, figsize=(12, 4), sharex=True, gridspec_kw={'hspace': 0})
max_val, min_val = values.max(), values.min()
band_height = (max_val - min_val) / num_bands

for i, ax in enumerate(axes):
    band_min = min_val + i * band_height
    band_max = band_min + band_height
    band_values = np.clip(values, band_min, band_max) - band_min
    ax.fill_between(dates, band_values, 0, color=plt.cm.viridis(0.3 + 0.2*i), alpha=0.8)
    ax.set_ylim(0, band_height)
    ax.axis('off')  # 隐藏坐标轴

plt.suptitle("地平线图 - 服务器负载趋势", y=0.9)
plt.show()

输出结果:
在这里插入图片描述

结果:图像垂直空间被压缩为3层,颜色由浅到深表示不同波段,适合同时监控多个指标。


二、河流图(Stream Graph)
特点:
• 堆积面积图的变种,基线对称,形似流动的河流。

• 通过颜色区分类别,强调占比变化和整体趋势。

应用场景:
• 展示不同产品市场份额随时间的变化。

• 用户行为分析中各操作路径的流量分布。

Python实现(Matplotlib):

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# 设置中文字体(避免中文乱码)
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用 SimHei 字体
plt.rcParams['axes.unicode_minus'] = False   # 解决负号显示问题

plt.style.use('ggplot')  

# 生成数据
dates = pd.date_range('2023-01-01', periods=30)
categories = ['A', 'B', 'C', 'D']
data = {cat: np.random.randn(30).cumsum() + 10*i for i, cat in enumerate(categories)}
df = pd.DataFrame(data, index=dates)

# 绘制河流图
fig, ax = plt.subplots(figsize=(12, 6))
colors = plt.cm.Pastel1(range(len(categories)))  # 根据类别数量生成颜色
ax.stackplot(df.index, df.T.values, labels=categories, baseline='sym', colors=colors)
ax.legend(loc='upper left', fontsize=10)
ax.set_title("河流图 - 多类别趋势分析", fontsize=16)
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

输出结果:
在这里插入图片描述

结果:曲线围绕中心线对称,不同颜色的区域如河流般流动,适合展示占比变化。


三、瀑布图(Waterfall Chart)
特点:
• 通过阶梯式柱子展示数据的增减过程,突出累积效应。

• 支持正向(绿色)和负向(红色)数值的对比。

应用场景:
• 财务报表中从收入到净利润的分解。

• 项目进度中任务完成度的阶段性展示。

Python实现:

import plotly.graph_objects as go

# 数据示例
categories = ['收入', '人力成本', '税费', '运营成本', '净利润']
values = [1200, -400, -150, -200, None]  # None表示自动计算总计
measure = ['absolute', 'relative', 'relative', 'relative', 'total']

fig = go.Figure(go.Waterfall(
    x=categories,
    y=values,
    measure=measure,
    connector={"line": {"color": "gray"}},
    increasing={"marker": {"color": "#2ca02c"}},  # 绿色表示增加
    decreasing={"marker": {"color": "#d62728"}}   # 红色表示减少
))

fig.update_layout(title="瀑布图 - 年度利润分析", showlegend=False)
fig.show()

输出结果:
在这里插入图片描述

结果:交互式图表展示从收入逐步扣除成本后的净利润,红色和绿色柱子区分支出与收入。


四、烛形图(Candlestick Chart)
特点:
• 每根“蜡烛”展示开盘价、收盘价、最高价、最低价。

• 实体颜色区分涨跌(绿色涨,红色跌)。

应用场景:
• 股票、加密货币等金融产品的价格波动分析。

• 外汇市场中汇率变化的日内趋势。

Python实现:

import plotly.graph_objects as go
import pandas as pd
import numpy as np

# 生成OHLC数据
dates = pd.date_range('2023-01-01', periods=30)
open = np.random.randn(30).cumsum() + 100
high = open + np.abs(np.random.randn(30))
low = open - np.abs(np.random.randn(30))
close = open + np.random.randn(30)

fig = go.Figure(go.Candlestick(
    x=dates,
    open=open,
    high=high,
    low=low,
    close=close,
    increasing_line_color='#2ca02c',  # 绿色表示涨
    decreasing_line_color='#d62728'   # 红色表示跌
))

fig.update_layout(title="烛形图 - 股票价格趋势", xaxis_rangeslider_visible=False)
fig.show()

输出结果:
在这里插入图片描述

结果:交互式蜡烛图,鼠标悬停可查看详细价格数据,适合高频交易分析。


五、其他时间趋势图表

  1. 折线图:基础趋势对比,适用于少量时间序列。
  2. 面积图:强调趋势和总量,适合单一类别的累积变化。
  3. 热力图:展示时间与另一个维度的密度关系(如用户活跃时段)。

六、工具对比与选择
• Matplotlib:适合静态报告,高度定制化,但代码较复杂。

• Plotly:生成交互式图表,适合网页嵌入,代码简洁美观。

• Seaborn:基于Matplotlib的封装,快速绘制统计图表。


结语
不同的时间趋势图表各有优劣:
• 密集多指标:选择地平线图或河流图。

• 财务累积效应:瀑布图最佳。

• 金融价格波动:烛形图不可替代。

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值