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

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

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

时间序列数据是观察事物动态演变的核心载体,无论是追踪股价波动、分析企业盈利趋势,还是洞察气候变化规律,都需要借助可视化工具揭示其内在模式——​​趋势性、季节性与周期性​​。从基础的折线图到多维度的螺旋图,从量化增减的瀑布图到捕捉市场情绪的烛形图,每种图表都以独特视角解码时间密码。


1. 地平线图

特点
• 通过分带和颜色渐变展示数据趋势,减少噪声干扰。

• 适合长时间跨度数据,突出高频和低频成分的变化。

• 结构清晰,通过水平带宽度固定,颜色深浅区分数据密度。

应用场景
• 金融领域:股票价格长期波动分析。

• 环境科学:气温、降水量的季节性变化研究。

• 医学研究:患者健康指标的长期跟踪。

Python实现(示例)
• 使用matplotlib自定义绘制:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

mpl.rcParams['font.sans-serif'] = ['SimHei'] 
mpl.rcParams['axes.unicode_minus'] = False  

def plot_horizon_chart(ax, x, y, num_bands=4):
  vmax = max(np.max(y), -np.min(y))
  band_height = vmax / num_bands
  pos_cmap = plt.get_cmap('YlOrRd', num_bands)
  neg_cmap = plt.get_cmap('PuBu', num_bands)
  for i in range(num_bands):
      band = np.clip(y - i * band_height, 0, band_height)
      ax.fill_between(x, i * band_height, i * band_height + band,
                      color=pos_cmap(i), step='mid')
  for i in range(num_bands):
      band = np.clip(-y - i * band_height, 0, band_height)
      ax.fill_between(x, -i * band_height, -i * band_height - band,
                      color=neg_cmap(i), step='mid')
  ax.axhline(0, color='black', lw=0.8)
  ax.set_ylim(-vmax, vmax)
  ax.set_xlabel('X 轴')
  ax.set_ylabel('数值')
  ax.set_title('自定义地平线图表')
x = np.linspace(0, 20, 1000)  
y = np.sin(x) * 15 + np.cos(3 * x) * 10 + np.sin(0.5 * x) * 5  
fig, ax = plt.subplots(figsize=(12, 8)) 
plot_horizon_chart(ax, x, y, num_bands=6)  
plt.show()

在这里插入图片描述


2. 河流图

特点
• 以流动的带状区域展示多变量时间序列的演变。

• 颜色表示不同类别数据,宽度表示数值大小。

• 动态展示节点间关系随时间变化,适合网络时间序列。

应用场景
• 项目管理:任务进度与资源分配的动态跟踪。

• 社交网络分析:用户行为模式的时序关联性。

• 环境管理:河流水质参数的多维度变化。

Python实现
• 使用pyecharts库绘制主题河流图:

from pyecharts.charts import ThemeRiver
from pyecharts import options as opts

# 数据
data = [
  ["2023/01", 10, "小麦"],
  ["2023/01", 15, "玉米"],
  ["2023/01", 35, "大豆"],
  ["2023/02", 20, "小麦"],
  ["2023/02", 30, "玉米"],
  ["2023/02", 40, "大豆"],
  ["2023/03", 30, "小麦"],
  ["2023/03", 25, "玉米"],
  ["2023/03", 50, "大豆"],
]

themeriver = (
  ThemeRiver()
  .add(
      series_name=["小麦", "玉米", "大豆"],
      data=data,
      singleaxis_opts=opts.SingleAxisOpts(type_="time"),
  )
  .set_global_opts(
      title_opts=opts.TitleOpts(title="23年1月到3月三种主要农作物产量(吨)河流图"),
      tooltip_opts=opts.TooltipOpts(trigger="axis"),
  )
)

themeriver.render("2.html")

在这里插入图片描述


3. 瀑布图

特点
• 分解数据从初始值到最终值的累积过程,突出正负贡献。

• 通过连接线展示数据流动,颜色区分增/减值(如绿色为增,红色为减)。

• 适合展示财务数据的逐步变化。

应用场景
• 财务分析:利润构成拆解(收入、成本、净利)。

• 销售管理:月度销售额的增量与损耗分析。

• 项目成本:研发阶段支出与收益的阶段性展示。

Python实现
• 使用plotly库:

import plotly.graph_objects as go

stages = ['初始销售额', '新增订单', '退单额', '促销活动', '本季度收入']
values = [1000, 500, -200, -100, 0]  # 最后一个值作为总计项,自动累计

fig = go.Figure(go.Waterfall(
  name="财报瀑布图",
  orientation="v",
  measure=["absolute", "relative", "relative", "relative", "total"],
  x=stages,
  text=[f"{v:+d}" if i < 4 else "" for i, v in enumerate(values)],
  y=values
))

fig.update_layout(
  title="企业季度财报瀑布图",
  waterfallgap=0.3
)

fig.show()

在这里插入图片描述


4. 烛形图

特点
• 由开盘价、收盘价、最高价、最低价构成,实体颜色区分涨跌(红跌绿涨)。

• 影线长度反映价格波动范围,适合捕捉市场情绪。

• 经典形态(如锤子线、乌云盖顶)预示趋势反转。

应用场景
• 股票交易:K线图分析股价短期波动。

• 外汇市场:汇率变化的日内趋势预测。

• 期货市场:大宗商品价格的多空博弈可视化。

Python实现
• 使用mplfinance库绘制:

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

matplotlib.rcParams['font.sans-serif'] = ['SimHei']  
matplotlib.rcParams['axes.unicode_minus'] = False    
my_style = mpf.make_mpf_style(base_mpf_style='yahoo', rc={'font.family': 'SimHei', 'axes.unicode_minus': False})

np.random.seed(0)
dates = pd.date_range('2023-01-01', periods=30)
data = pd.DataFrame({
  'Open': np.random.uniform(100, 110, size=30),
  'High': np.random.uniform(110, 120, size=30),
  'Low': np.random.uniform(90, 100, size=30),
  'Close': np.random.uniform(100, 110, size=30),
  'Volume': np.random.randint(1000, 5000, size=30)
}, index=dates)
data['High'] = data[['Open','Close','High']].max(axis=1) + np.random.uniform(0,2, size=30)
data['Low'] = data[['Open','Close','Low']].min(axis=1) - np.random.uniform(0,2, size=30)

def calc_lower_wick(row):
  base = min(row['Open'], row['Close'])
  return base - row['Low']

data['lower_wick'] = data.apply(calc_lower_wick, axis=1)
data['range'] = data['High'] - data['Low']
data['is_hammer'] = np.where((data['range'] > 0) & ((data['lower_wick'] / data['range']) > 0.5), data['Close'], np.nan)

data.drop(['lower_wick','range'], axis=1, inplace=True)

ap = mpf.make_addplot(data['is_hammer'], type='scatter', markersize=100, marker='v', color='red')
mpf.plot(data,
       type='candle',
       volume=True,
       style=my_style,
       addplot=ap,
       title='带成交量与形态标记的烛形图',
       ylabel='价格',
       ylabel_lower='成交量')

在这里插入图片描述


图表类型优劣势对比适用场景
地平线图优势:
1. 压缩空间:通过折叠多层数据带,在有限空间内展示长时间跨度趋势
2. 抗噪性强:通过分位数聚合减少异常值干扰,突出核心趋势

劣势:
1. 解读门槛高:需理解水平带颜色与分位数的对应逻辑
2. 交互依赖:数据密集时需缩放操作辅助观察
长周期趋势分析(如气候数据年际变化、股票十年波动模式)
河流图优势:
1. 动态感知:流动形态直观展现多变量协同/竞争关系(如多品类市场份额变化)
2. 美观性强:渐变色彩与曲线增强视觉吸引力

劣势:
1. 精度不足:无法精确对比同一时间点的具体数值
2. 复杂度限制:变量超过10类时易导致图形混乱
多变量动态关联分析(如用户行为时间分布、舆情事件热度演变)
瀑布图优势:
1. 过程透明:分阶段展示数据增减路径(如利润从收入到净值的转化)
2. 逻辑清晰:颜色区分正负贡献,箭头标注关键节点

劣势:
1. 扩展性弱:数据步骤超过15项时图表拥挤
2. 维度单一:仅支持单一度量指标分解
财务数据拆解(利润构成)、项目进度跟踪(预算消耗阶段)
烛形图优势:
1. 信息密度高:单根蜡烛整合开盘/收盘/最高/最低四维度数据
2. 信号明确:经典形态(如十字星、吞没形态)反映多空博弈强度

劣势:
1. 假信号风险:需结合成交量等指标验证形态可靠性
2. 周期依赖:短周期(如1分钟K线)噪声干扰显著
金融市场分析(股票/外汇价格波动)、供应链价格监控(大宗商品日内交易)

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

Python3.8

Python3.8

Conda
Python

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值