当前位置: 首页 > 知识库问答 >
问题:

如何使用Python绘制时间和价值的时间序列图

柴飞扬
2023-03-14

如何使用Python绘制时间序列图?因为在数据集中,时间被拆分为年和周期(如M1、M2的月份)。

我正在使用matplotlib,但不知道如何分配时间。

我写的代码来获取数据:导入熊猫作为pd从熊猫导入DataFrame data1=pd.read_csv('CUUR0000SA0.txt',标头=无)data2=pd.read_csv('SUUR0000SA0.txt',标头=无)data=pd.concat([data1, data2])data.columns=[a]data=DataFrame(data)print(data.head())

但是,输出数据帧只有一列。

部分数据集如下所示:

+-------------+------+--------+---------+-----------+
|  series id  | year | period |  value  | footnotes |
+-------------+------+--------+---------+-----------+
| CUUR0000SA0 | 2014 |  M12   | 234.812 |           |
| CUUR0000SA0 | 2014 |  M11   | 236.151 |           |
| CUUR0000SA0 | 2014 |  M10   | 237.433 |           |
| CUUR0000SA0 | 2014 |  M09   | 238.031 |           |
| CUUR0000SA0 | 2014 |  M08   | 237.852 |           |

图表应根据时间段使用图表解释数值的趋势。但我不知道如何先把它转换成正确的格式。

共有1个答案

赏高格
2023-03-14

以下是获得解决方案的步骤:

  1. 将周期值转换为数字

这是代码:

import pandas as pd
from datetime import datetime

df = {0: {"series id":"CUUR0000SA0", "year":2014, "period":"M12", "value":234.812},
        1: {"series id":"CUUR0000SA0", "year":2014, "period":"M11", "value":236.151},
       2: {"series id":"CUUR0000SA0", "year":2014, "period":"M10", "value":237.433},
       3: {"series id":"CUUR0000SA0", "year":2014, "period":"M09", "value":238.031},
       4: {"series id":"CUUR0000SA0", "year":2014, "period":"M08", "value":237.852},
       }

d = {'M01':1,
     'M02':2,
     'M02':3,
     'M04':4,
     'M05':5,
     'M06':6,
     'M07':7,
     'M08':8,
     'M09':9,
    'M10':10,
    'M11':11,
    'M12':12,}

df = pd.DataFrame.from_dict(df, orient="index")
df.period = df.period.map(d)

df['date'] = pd.to_datetime(df.year.astype(str) + '/' + df.period.astype(str) + '/01')

df.plot(x='date', y='value')
 类似资料:
  • 问题内容: 假设我使用以下方法创建一个完全随机的“Dataframe”: 这将导致数据帧显示在这篇文章的底部。我想 使用 时间序列 “seaborn”中的可视化功能使我得到了以下线索 我如何解决这个问题?从我读到的 笔记本](http://www.stanford.edu/~mwaskom/software/seaborn/timeseries_plots.html), 电话应该是: 但这似乎需要

  • 问题内容: 我有一个格式为(HH:MM:SS.mmmmmm)的时间戳数组和另一个浮点数数组,每个浮点数对应于timestamp数组中的一个值。 我可以使用Matplotlib在x轴上绘制时间,在y轴上绘制数字吗? 我试图这样做,但是不知何故它只接受浮点数数组。如何获得时间图?我必须以任何方式修改格式吗? 问题答案: 你必须首先将时间戳转换为对象(使用)。然后使用将日期转换为格式。 使用以下方式绘制

  • 我试着用plotly绘制一个gannt图。重要的是,水平泳道可以有多个横杆在时间上分开。 我发现了一个使用日历日期(YYYY-MM-DD)的例子,并尝试使用时间(HH:MM:SS)进行转换。但是当我使用时间戳时,所有的东西都聚集在一起,没有间隙。

  • 主要内容:创建时间戳,创建时间范围,更改时间频率,转化为时间戳,频率和周期转换,时间周期计算,创建时间周期,时间序列转换,创建日期范围,更改日频率,工作日时间顾名思义,时间序列(time series),就是由时间构成的序列,它指的是在一定时间内按照时间顺序测量的某个变量的取值序列,比如一天内的温度会随时间而发生变化,或者股票的价格会随着时间不断的波动,这里用到的一系列时间,就可以看做时间序列。时间序列包含三种应用场景,分别是: 特定的时刻(timestamp),也就是时间戳; 固定的日期(pe

  • 问题内容: 这是基于@trashgod的有关实时绘图的示例的代码: 运行Java之后,尽管从0开始,但是我仍然不明白为什么图形从40秒开始?遍历代码;找不到任何要在40秒后开始的设置。 另外,如何向后滚动图形以查看以前的数据。 问题答案: 该图在构造传递到的日期的午夜之后的16分40秒处开始。这是在构造函数参数中指定的相同的1000个间隔,每个间隔一秒。在给定的时间设置为午夜的情况下,获取基于零的

  • 我正在使用: 熊猫版本0.23。0 Python版本3.6。5. Seaborn版本0.81。1. 我想要一列时间戳数据的方框图。我的dataframe不是一个时间序列,索引只是一个整数,但我创建了一列时间戳数据,使用: 我过滤掉所有由胁迫产生的NaT值。 在这一点上,我的数据看起来不错,我可以确认EVENT_DM_TS列的类型是Timestamp,没有无效值。 最后,要生成我调用的单变量方框图: