📜  pandas 中的多个时间序列图 - TypeScript (1)

📅  最后修改于: 2023-12-03 14:45:03.120000             🧑  作者: Mango

pandas 中的多个时间序列图 - TypeScript

在数据可视化中,比较多个时间序列图是很常见的需求。pandas是一个数据分析库,它也提供了绘制时间序列图的功能。本篇文章将介绍如何使用pandas绘制多个时间序列图。

准备数据

在开始之前,我们需要准备数据。这里我们使用一个包含4个时间序列的数据集。

const data = {
  'date': ['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05', '2021-01-06', '2021-01-07', '2021-01-08', '2021-01-09', '2021-01-10', '2021-01-11', '2021-01-12', '2021-01-13', '2021-01-14', '2021-01-15', '2021-01-16', '2021-01-17', '2021-01-18', '2021-01-19', '2021-01-20', '2021-01-21', '2021-01-22', '2021-01-23', '2021-01-24', '2021-01-25', '2021-01-26', '2021-01-27', '2021-01-28', '2021-01-29', '2021-01-30', '2021-01-31'],
  'series1': [1, 3, 5, 4, 2, 6, 4, 5, 7, 8, 5, 4, 2, 1, 3, 5, 4, 2, 6, 4, 5, 7, 8, 5, 4, 2, 1, 3, 5, 4, 2],
  'series2': [3, 5, 7, 6, 3, 8, 6, 7, 9, 10, 7, 6, 4, 3, 5, 7, 6, 3, 8, 6, 7, 9, 10, 7, 6, 4, 3, 5, 7, 6, 3],
  'series3': [2, 4, 6, 5, 4, 7, 5, 6, 8, 9, 6, 5, 3, 2, 4, 6, 5, 4, 7, 5, 6, 8, 9, 6, 5, 3, 2, 4, 6, 5, 4],
  'series4': [4, 6, 8, 7, 5, 9, 7, 8, 10, 11, 8, 7, 5, 4, 6, 8, 7, 5, 9, 7, 8, 10, 11, 8, 7, 5, 4, 6, 8, 7, 5]
};
绘制多个时间序列图

pandas提供了plot函数来绘制时间序列图。可以将所有的时间序列都绘制在同一张图上,也可以分别绘制每个时间序列。

绘制多个时间序列在同一张图上
import pandas as pd;
import { DataFrame } from 'pandas-ts';

// 将数据转为DataFrame
const df = new DataFrame(data).set_index('date');

// 绘制多个时间序列在同一张图上
df.plot();

运行以上代码,即可得到多个时间序列在同一张图上的结果。

绘制多个时间序列在同一张图上

可以看到,每个时间序列被绘制为一条曲线,并且在图例中有对应的标记。同时,x轴显示的是时间值。

分别绘制每个时间序列

如果需要对每个时间序列进行更详细的控制或展示,可以将多个时间序列分别绘制。

import { getUTCDate } from 'pandas-ts/lib/utils/time';
import { DataFrame } from 'pandas-ts';

// 将数据转为DataFrame
const df = new DataFrame(data).set_index('date');

// 分别绘制时间序列
df.columns.forEach(column => {
  const title = `series ${column.charAt(column.length - 1)}`;
  df.plot({
    y: column,
    title: title,
    xticks: { ticks: df.index.map(d => getUTCDate(d)), step: 2 }
  });
});

以上代码将每个时间序列分别绘制,可以对每个图进行更详细的控制。其中xticks属性用于设置x轴的刻度,这里设置为每两天显示一次。

运行以上代码,即可得到每个时间序列的单独图像。

分别绘制每个时间序列

总结

本文介绍了如何使用pandas绘制多个时间序列图。通过plot函数可以轻松地绘制多个时间序列图,同时可以对每个时间序列进行更详细的控制。