精华内容
下载资源
问答
  • 利用R语言画简单时间序列图

    万次阅读 2017-08-27 14:57:03
    所以利用R语言画时间序列图的一个关键步骤就是将读取的数据转变为时间序列格式, 下面是一个简单的程序: # 读取数据, 首先将excel 格式的转化为 csv 格式 再读取 h (file = "D:/data/50etfx1.csv",sep = ",",...

    R 语言无法自动将读取的数据转化为时间序列格式,

    所以利用R语言画时间序列图的一个关键步骤就是将读取的数据转变为时间序列格式,

    下面是一个简单的程序:

     #  读取数据, 首先将excel 格式的转化为 csv 格式 再读取
    h <- read.table(file = "D:/data/50etfx1.csv",sep = ",",header = T)
     #  将数据格式转化为时间序列格式
    library(xts)  # 加载需要的包
    hh <- xts(h$x1, as.Date(h$time, format='%Y/%m/%d')) 
      #  画图
       # 指定图的长宽 或者 用命令  plot(hh)  直接画
    win.graph(width = 9.5,height = 4.5,pointsize = 8)
    plot(hh,type = 'l',main=' ')
    效果如下:


    示例程序所用的数据格式如下所示:


    time                   x1
    2013/2/5          0.000000 
    2013/2/6          0.007236 
    2013/2/7          -0.011708 
    2013/2/8    -0.004989 
    2013/2/18 -0.010806 
    2013/2/19 -0.015255 
    2013/2/20 -0.001583 
    2013/2/21 -0.040148 

    。。。。。。。。。。。。

    2015/1/29 -0.019893 
    2015/1/30 -0.016171 
    2015/2/2          -0.031637 
    2015/2/3          0.027171 
    2015/2/4         -0.015722 
    2015/2/5         -0.010018 
    2015/2/6         -0.012613 


    展开全文
  • r语言时间序列图_R中的时间序列图

    千次阅读 2020-07-18 23:54:52
    r语言时间序列图In this tutorial, we’ll be going over how to create time series plots in R. Time series data refers to data points that represent a particular variable changing over different points ...

    r语言时间序列图

    In this tutorial, we’ll be going over how to create time series plots in R. Time series data refers to data points that represent a particular variable changing over different points of time. It can be thought of as a sequence of data that was recorded at regular time intervals.

    在本教程中,我们将介绍如何在R中创建时间序列图。时间序列数据是指代表特定变量在不同时间点变化的数据点。 可以将其视为按固定时间间隔记录的数据序列。

    Time series data is widely used in stock market analysis, weather analysis, market trend analysis and any other scenarios where data variations with time are important.

    时间序列数据广泛用于股票市场分析,天气分析,市场趋势分析以及其他任何数据随时间变化很重要的场景。

    R has several packages to perform time-series plotting and analysis tasks. Let us begin by acquiring some standard time series data for our work.

    R有几个软件包可以执行时间序列绘图和分析任务。 让我们开始为我们的工作获取一些标准时间序列数据。

    采集数据 (Acquiring Data)

    Several data scientists and organizations have open-sourced time series datasets that could be directly downloaded to the R environment. Two of these sources are:

    一些数据科学家和组织已经开源了时间序列数据集,这些数据集可以直接下载到R环境中。 其中两个来源是:

    The packages can be installed into your R environment using install.packages("packagename") command. Other relevant instructions are present on the websites give above.

    可以使用install.packages("packagename")命令将软件包安装到R环境中。 其他相关说明也位于上述网站上。

    Let us proceed with some data from the tsdl package for illustrating time series plotting.

    让我们继续使用tsdl包中的一些数据来说明时间序列图。

    查看时间序列数据 (Viewing Time Series Data)

    The tsdl package has numerous data series across several categories. Let us try accessing some of these sets. The first step is to load the package into memory.

    tsdl软件包具有多个类别的众多数据系列。 让我们尝试访问其中一些集合。 第一步是将程序包加载到内存中。

    
    library(tsdl)
    tsdl
    
    
    Time Series Data Library: 648 time series  
    
                           Frequency
    Subject                 0.1 0.25   1   4   5   6  12  13  52 365 Total
      Agriculture             0    0  37   0   0   0   3   0   0   0    40
      Chemistry               0    0   8   0   0   0   0   0   0   0     8
      Computing               0    0   6   0   0   0   0   0   0   0     6
      Crime                   0    0   1   0   0   0   2   1   0   0     4
      Demography              1    0   9   2   0   0   3   0   0   2    17
      Ecology                 0    0  23   0   0   0   0   0   0   0    23
      Finance                 0    0  23   5   0   0  20   0   2   1    51
      Health                  0    0   8   0   0   0   6   0   1   0    15
      Hydrology               0    0  42   0   0   0  78   1   0   6   127
      Industry                0    0   9   0   0   0   2   0   1   0    12
      Labour market           0    0   3   4   0   0  17   0   0   0    24
      Macroeconomic           0    0  18  33   0   0   5   0   0   0    56
      Meteorology             0    0  18   0   0   0  17   0   0  12    47
      Microeconomic           0    0  27   1   0   0   7   0   1   0    36
      Miscellaneous           0    0   4   0   1   1   3   0   1   0    10
      Physics                 0    0  12   0   0   0   4   0   0   0    16
      Production              0    0   4  14   0   0  28   1   1   0    48
      Sales                   0    0  10   3   0   0  24   0   9   0    46
      Sport                   0    1   1   0   0   0   0   0   0   0     2
      Transport and tourism   0    0   1   1   0   0  12   0   0   0    14
      Tree-rings              0    0  34   0   0   0   1   0   0   0    35
      Utilities               0    0   2   1   0   0   8   0   0   0    11
      Total                   1    1 300  64   1   1 240   3  16  21   648
    > 
    

    Let us try choosing a time-series for our plotting. We first create a subset of the above dataset using the subset function for the respective category.

    让我们尝试为绘图选择时间序列。 我们首先使用各个类别的子集函数创建上述数据集的子集。

    
    crime <-subset(tsdl,'Crime')
    

    Now, in order to access the time series, we need to index the data frame created above. This particular time series represents the number of monthly armed robberies in Boston from Jan 1965 to Oct 1977.

    现在,为了访问时间序列,我们需要索引上面创建的数据帧。 这个特定的时间序列代表了1965年1月至1977年10月在波士顿发生的每月武装抢劫案的数量。

    
    crime[[2]]
    
    
    > crime[[2]]
         Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    1966  41  39  50  40  43  38  44  35  39  35  29  49
    1967  50  59  63  32  39  47  53  60  57  52  70  90
    1968  74  62  55  84  94  70 108 139 120  97 126 149
    1969 158 124 140 109 114  77 120 133 110  92  97  78
    1970  99 107 112  90  98 125 155 190 236 189 174 178
    1971 136 161 171 149 184 155 276 224 213 279 268 287
    1972 238 213 257 293 212 246 353 339 308 247 257 322
    1973 298 273 312 249 286 279 309 401 309 328 353 354
    1974 327 324 285 243 241 287 355 460 364 487 452 391
    1975 500 451 375 372 302 316 398 394 431 431 
    

    We now create a time series object from this data frame using the function.

    现在,我们使用函数从该数据帧创建一个时间序列对象。

    
    series <- ts(crime[[2]])
    series
    
    
    Time Series:
    Start = 1 
    End = 118 
    Frequency = 1 
      [1]  41  39  50  40  43  38  44  35  39  35  29  49  50  59  63  32  39  47  53  60
     [21]  57  52  70  90  74  62  55  84  94  70 108 139 120  97 126 149 158 124 140 109
     [41] 114  77 120 133 110  92  97  78  99 107 112  90  98 125 155 190 236 189 174 178
     [61] 136 161 171 149 184 155 276 224 213 279 268 287 238 213 257 293 212 246 353 339
     [81] 308 247 257 322 298 273 312 249 286 279 309 401 309 328 353 354 327 324 285 243
    [101] 241 287 355 460 364 487 452 391 500 451 375 372 302 316 398 394 431 431
    attr(,"source")
    [1] McCleary & Hay (1980)
    attr(,"description")
    [1] Monthly Boston armed robberies Jan.1966-Oct.1975 Deutsch and Alt (1977)
    attr(,"subject")
    [1] Crime
    

    The ts() function converts a numeric vector into a time series object. The syntax is as follows:

    ts()函数将数值向量转换为时间序列对象。 语法如下:

    
    ts(vector, start, end, frequencY)
    

    You can choose to convert only a part of the time series instead of the whole series by selecting the start and endpoints from the whole series.

    通过从整个序列中选择起点和终点,您可以选择只转换一部分时间序列,而不转换整个序列。

    We can retrieve only the crime data from 1970 January to 1972 December using the following command:

    我们可以使用以下命令仅检索1970年1月至1972年12月的犯罪数据:

    
    > shortseries <-ts(crime[[2]], start=c(1970,1), end=c(1983,12))
    > shortseries
    Time Series:
    Start = 1970 
    End = 1983 
    Frequency = 1 
     [1] 41 39 50 40 43 38 44 35 39 35 29 49 50 59
    

    The frequency option indicates how often the observations are to be made. 1 indicates annual, 4 indicates quarterly and so on. By default, frequency takes one observation per year by calculating the mean of all observations.

    频率选项指示多久进行一次观测。 1表示年度,4表示季度,依此类推。 默认情况下,频率通过计算所有观测值的平均值每年进行一次观测。

    If we need more fine-grained observations, we need to specify 12 as the frequency (one observation every month).

    如果需要更多细粒度的观察,则需要指定12个作为频率(每月观察一次)。

    在R中创建时间序列图 (Creating Time Series Plots in R)

    R provides plot.ts() function to plot time-series graphs. Let us re-examine our series data.

    R提供plot.ts()函数来绘制时间序列图。 让我们重新检查我们的系列数据。

    
    series <- ts(crime[[2]])
    plot.ts(series)
    

    Since this series was not specified with a start and end date, the plot will just display the observation number instead of the year number.

    由于未为该系列指定开始日期和结束日期,因此该图将仅显示观察编号而不是年份编号。

    Plain Time Series plots in R
    A plain time-series graph with no years
    没有年份的纯时间序列图

    We are now going to redefine the series object with starting and ending dates and frequency set to 12.

    现在,我们将重新定义系列对象,将开始日期和结束日期以及频率设置为12。

    
    series <- ts(crime[[2]], start =c(1966,1), end=c(1975,12),frequency = 12)
    plot.ts(series)
    
    Time series plots in R With Years
    Timeseries With Years
    与年的时间序列

    分解时间序列 (Decomposing Time Series)

    It is possible to further analyze the time series by using decomposition. These additional pieces of information can be separately plotted as 3 different plots along with the observed plot:

    通过分解可以进一步分析时间序列。 这些额外的信息可以与观察到的图一起分别绘制为3个不同的图:

    • Seasonal: How patterns repeat over certain intervals of time

      季节性 :模式如何在特定时间间隔内重复
    • Trend: The general direction of the time series progress – whether rising or falling.

      趋势 :时间序列进展的总体方向–上升或下降。
    • Random: The inherent irregularity present in the data when the trend and seasonality are removed.

      随机 :去除趋势和季节性后,数据中固有的不规则性。

    This information can be derived from a series using the decompose() function as follows.

    可以使用decompose()函数从一系列信息中得出以下信息。

    
    decseries <-decompose(series)
    

    The result is a list of all the above components of the series. These can be plotted using a plot() function directly.

    结果是该系列所有上述组件的列表。 这些可以直接使用plot()函数绘制。

    
    plot(decseries)
    
    Decomposed Time Series
    Decomposed Time Series
    分解时间序列

    From the graph, it can be observed that there is a seasonality in the crimes being performed, and the trend is generally on the rise.

    从图中可以看出,所犯罪行具有季节性,并且这种趋势总体上呈上升趋势。

    Time series plots are an important means of data analysis for sequential and time-varying data. R functionalities like those mentioned above make the tasks easier.

    时间序列图是对顺序数据和时变数据进行数据分析的重要手段。 像上面提到的那些功能使任务更加容易。

    翻译自: https://www.journaldev.com/36718/time-series-plots-in-r

    r语言时间序列图

    展开全文
  • 想要放松一下的小伙伴,今天我们一起来一个时间序列图吧。一、读取数据及处理通过pandas读取CSV文件,keep_default_na参数将空值数据改为空字符串查看原数据信息,原数据分为3day, 时间粒度3min通过pandas date_...

    学了编程后,突然发现用python画图是一件很容易的事。想要放松一下的小伙伴,今天我们一起来画一个时间序列图吧。

    一、读取数据及处理

    通过pandas读取CSV文件,keep_default_na参数将空值数据改为空字符串

    查看原数据信息,原数据分为3day, 时间粒度3min

    通过pandas date_range函数生成时间序列时间数据,指定freq='180s'import pandas as pd

    import matplotlib.pyplot as plt

    import matplotlib.dates as mdates

    %matplotlib inline

    plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文(windows)

    plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号

    df = pd.read_csv('traffic_analysis_macro.csv', keep_default_na=False) # 无数据当做空字符串处理

    # df.drop(['region_id'], axis=1, inplace=True)

    # 查看原始数据集情况

    print('shape:', df.shape)

    print('describle:', df.describe())

    print('data head:', df.head())

    # 该数据集,分为3天,时间粒度3min;

    # 首先按天切分数据

    df_0912 = df[:480]

    df_0915 = df[480:960]

    df_0916 = df[960:]

    # 生成时间序列:X轴刻度数据

    table = pd.DataFrame([i for i in range(480)],columns=['value'],index=pd.date_range('00:00:00', '23:57:00', freq='180s'))

    二、绘制图形# 图片大小设置

    fig = plt.figure(figsize=(15,9), dpi=100)

    ax = fig.add_subplot(111)

    # X轴时间刻度格式 & 刻度显示

    ax.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))

    plt.xticks(pd.date_range(table.index[0],table.index[-1],freq='H'), rotation=45)

    # 绘图

    ax.plot(table.index,df_0912['avg_speed'],color='r', label='9月12日')

    ax.plot(table.index,df_0915['avg_speed'],color='y', label='9月15日')

    ax.plot(table.index,df_0916['avg_speed'],color='g', label='9月16日')

    # 辅助线

    sup_line = [35 for i in range(480)]

    ax.plot(table.index, sup_line, color='black', linestyle='--', linewidth='1', label='辅助线')

    plt.xlabel('time_point', fontsize=14) # X轴标签

    plt.ylabel("Speed", fontsize=16) # Y轴标签

    ax.legend() # 图例

    plt.title("车速时序图", fontsize=25, color='black', pad=20)

    plt.gcf().autofmt_xdate()

    # 隐藏-上&右边线

    # ax.spines['right'].set_color('none')

    # ax.spines['top'].set_color('none')

    # plt.savefig('speed.png')

    plt.show()

    三、效果图如下

    1604914612228769.png

    以上就是python中用matlibplot画时间序列图的方法。更多Python学习推荐:PyThon学习网教学中心。

    展开全文
  • 利用R语言绘制时间序列图

    万次阅读 2020-06-26 22:37:57
    数据 GDP.csv文件,存储1879~2019年河南省GDP数据 绘图 # 读取数据, 首先将...# 转化为时间序列数据 GDP=ts(h$GDP,start = 1978,frequency = 1) # 绘图 plot(GDP) 补充:ts函数 ts() 函数: 通过一向量或者矩

    数据

    GDP.csv文件,存储1879~2019年河南省GDP数据
    河南省GDP

    绘图

    # 读取数据, 首先将excel 格式的转化为 csv 格式 再读取
    h <- read.table(file = "C:/Users/PYY/Desktop/GDP.csv",sep = ",",header = T)
    # 转化为时间序列数据
    GDP=ts(h$GDP,start = 1978,frequency = 1)  
    # 绘图
    plot(GDP)  
    

    在这里插入图片描述

    补充:ts函数

    ts() 函数:
    • 通过一向量或者矩阵创建一个一元的或多元的时间序列(time series),为ts型对象。
    调用格式:
    ts(data = NA, start = 1, end = numeric(0), frequency = 1, deltat = 1, ts.eps = getOption("ts.eps"), class, names)
    
    参数说明:
    • data:一个向量或者矩阵
    • start:第一个观测值的时间,为一个数字或者是一个由两个整数构成的向量
    • end:最后一个观测值的时间,指定方法和start相同
    • frequency:单位时间内观测值的频数(频率)
    • deltat:两个观测值间的时间间隔。frequency和deltat必须并且只能给定其中一个
    • ts.eps:序列之间的误差限,如果序列之间的频率差异小于ts.eps,则认为这些序列的频率相等
    • class:对象的类型。一元序列的缺省值是“ts”,多元序列的缺省值是c(“mts”,“ts”)
    • names:一个字符型向量,给出多元序列中每个一元序列的名称,缺省data中每列数据的名称或者Series 1,Series 2, 。。。
    举个栗子:
    ts(1:26, start=1986)  #最简单的形式
    Time Series:
    Start = 1986 
    End = 2011 
    Frequency = 1 
    

    运行结果:
    在这里插入图片描述

    ts(1:26, frequency = 12, start=c(1986,10)) #frequency = 12时,为月份
    

    运行结果:
    在这里插入图片描述

    展开全文
  • matplotlib画时间序列图

    万次阅读 2017-03-16 17:08:33
    数据储存在csv文件里面,格式是这样的 导入后直接开
  • R语言-时间序列绘图

    万次阅读 2015-05-12 19:49:33
    使用R语言,在一个绘图窗口中绘制两个图形,使用布局管理器来实现。 1、绘制自相关和偏自相关的命令为: > par(pin=c(4,2),mfrow=c(2,1))  #设置图形大小(长4英寸,高2英寸),分成2行1列 > layout(matrix(c(1,...
  • R语言-时间序列图

    千次阅读 2018-12-12 20:17:00
    1.时间序列图 plot()函数 > air<-read.csv("openair.csv") > plot(air$nox~as.Date(air$date,"%d/%m/%Y %H:%M"), #把年月日时分秒转换成日期格式 + type="l", + xlab="Time", ylab="Concentration...
  • 小弟纯新手,之前没有学习过编程,只会excel,刚开始学习python,现在碰到一个matplotlib的绘图问题。 现有一个csv格式的数据文件,有两列,一列为日期,一列为数据,在网上搜了好久,形成以下一段代码。现在问题...
  • 应用pandas可读取excel文件中...本例中读取的stock.xlsx文件中的数据为一、importnumpy as npimportpandas as pdimportmatplotlib.pyplot as pltimportmatplotlib.dates as mdate#时间序列绘图示例stock = pd....
  • 对于二维图而言,当横轴为时间时,即为随时间序列图。下面先给出一个例子:效果:python二维图最常用的是matplotlib.pyplot, datetime可以很方便将字符串转化为python的时间格式。xlabel:设置横坐标注释...
  • 5.ss=paste("峰值:",highest[2]$cles,"\n时间:",highest[1]$date,collapse="\n")   6.p+geom_point(aes(x=highest[1]$date,y=highest[2]$cles),colour="red",size=5)+geom_text(aes(highest[1]$date, ...
  • R语言时间序列练习

    2019-04-19 15:49:36
    R语言时间序列数据分析,常用的TTR包的导入、入门与作图。
  • 一、时间序列的定义 时间序列是将统一统计值按照时间发生的先后顺序来进行排列,时间序列分析的主要目的是根据已有数据对未来进行预测。 一个稳定的时间序列中常常包含两个部分,那么就是:有规律的时间序列+噪声。...
  • 这学期有一节时间序列课。一周一学期大法学完了之后,只是python一步一步做下来的话,好像也没有那么那么那么难。但是,其实好多东西都没太懂,能确定会了的,就只有写似然函数和无脑调用程序包。连python有几种...
  • R语言时间序列分析

    千次阅读 2020-05-23 00:29:48
    时间序列 白噪声序列 终止分析,无信息可提取 非白噪声序列 平稳序列 AR/MA/ARMA 非平稳序列 ARIMA,实际中最常见 当拿到一个时间序列的时候,首先分析该时间序列的类型,不同类型的序列有不同...
  • R语言实现时间序列分析

    千次阅读 2019-11-11 20:11:45
    一、时间序列分析导论: 处理方式: 1.对于原始数据进行季节性处理和差分,以形成平稳序列;期间如果遇到了随机序列,则停止时间序列建模 2.对于给定的序列进行自相关函数和偏自相关函数分析(在不同的滞后...
  • R语言时间序列常用函数

    千次阅读 2019-06-06 10:36:26
    时序分析会用到的函数 ... 时间序列的折线 start() stats 返回时间序列的开始时间 end() stats 返回时间序列的结束时间 frequency() stats 返回时间序列中时间点的个数 win...
  • R语言时间序列

    千次阅读 2020-12-08 18:12:37
    1. 时间序列概述 按照时间的顺序把随机事件变化发展的过程记录下来就构成了一个时间序列时间序列进行观察、研究,找寻它变化发展的规律,预测它将来的走势就是时间序列分析 时间序列建模基本步骤: 解释建模的...
  • 大家好,我是R新手,在学习机器学习这本书,仿照第一章想做一个数据的直方 数据如下 ![图片说明](https://img-ask.csdn.net/upload/201612/28/1482889898_51692.png) 其中wed_date已经转换成日期格式(ship_date...
  • <p><img alt="" height="205" src="https://img-ask.csdnimg.cn/upload/1620980297400.png" width="642" /></p> 数据就是这样,单纯想把它们按照时间顺序在一张上。 求大神解答!!</p>
  • [R可视化]绘制时间序列图

    万次阅读 2018-08-06 18:14:14
    library(ggplot2) g()+geom_line(aes(x=ctime,y=count),data=b,color="gray40") g(aes(x=ctime,y=count),data=b,col="gray26",size=1.5,alpha=0.6) ...g(x="日期",y="数量",title="趋势") g
  • 在学习了plotly的Time Series 时间序列图标之后,绘制了一张接口响应耗时的图标,分享代码,供大家参考。下面是从数据库读取数据的java代码:JSONObject data = new JSONObject();ResultSet resultSet = MySqlTest.....
  • 首先呢是生成随机观测值,接着时间序列图,然后进行单根检验和 ACF 和 PACF 指令分别出自相关数和偏自相关系数图。 随机观测值生成我了两种,一种是迭代随机生成,一种是arima.sim函数生成一列符合...
  • R语言绘图:时间序列分析

    千次阅读 2019-10-06 02:30:37
    ggplot2绘制 arima诊断 library(ggfortify) autoplot(acf(gold[,2], plot = FALSE)) ggtsdiag(auto.arima(gold[,2])) 将数据改为时间格式 gold <...设置时间格式 绘制时间趋势 gdp <- ts...
  • 股票日内的分时,发现中午有一段时间是没有数据的,导致出来的中间都一一段横盘时间,为了美观,试了很多种办法想把那一段横线去掉,最后发现利用 FuncFormatter 可以实现 官方给出的方法 11.1.9 Skip ...
  • R语言时间序列分析

    千次阅读 2019-02-13 18:55:31
    时间序列分析 时间序列分析是根据系统观测得到的时间序列数据,通过曲线拟合和参数估计来建立数学模型的理论和方法。它一般采用曲线拟合和参数估计方法(如非线性最小...1.时间序列的趋势,判断趋势是否平稳 ...
  • 前一节我们学会了如何根据自己需要设置图标的显示样式,但是我们之前... 因为时间序列图的时间轴都是定长的时间单位,比如年月日时分秒等,也就是相邻的数据点其实就是时间单位加1而已,所以我们只要知道第一个数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,793
精华内容 12,317
关键字:

如何用r画时间序列图