精华内容
下载资源
问答
  • 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语言时间序列图

    展开全文
  • 利用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 


    展开全文
  • Matplotlib可绘制日期型时间序列图,来看~

    日期型时间序列图

    一般而言,我们绘制时间序列图都是将日期类型的数据放在x轴上进行展示,将对应日期下的数据放在y轴上进行展示的。
    因此,对于matplotlib库来讲,日期型时间序列图的绘制既可以调用模块pyplot的API函数plot_date(),也可以调用实例方法plot_date()。

    Matplotlib编程实现

    import datetime
    import matplotlib.pyplot as plt
    import matplotlib.dates as mdates
    import numpy as np
    
    fig, ax = plt.subplots()
    
    months = mdates.MonthLocator()
    
    dateFmt = mdates.DateFormatter("%m/%d/%y")
    
    ax.xaxis.set_major_formatter(dateFmt)
    ax.xaxis.set_minor_locator(months)
    ax.tick_params(axis="both", direction="out", labelsize=10)
    
    date1 = datetime.date(2005, 8, 8)
    date2 = datetime.date(2015, 6, 6)
    delta = datetime.timedelta(days=5)
    dates = mdates.drange(date1, date2, delta)
    
    y = np.random.normal(100, 15, len(dates))
    
    ax.plot_date(dates, y, "#FF8800", alpha=0.7)
    
    fig.autofmt_xdate()
    
    plt.show()
    

    成品图

    在这里插入图片描述

    展开全文
  • 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...

    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 (ppb)", 
    + main="Time trend of Oxides of Nitrogen") 
    

    zoo()包

    > library(zoo) 
    > plot(zoo(air$nox,as.Date(air$date,"%d/%m/%Y %H:%M")),   #zoo简化plot函数的参数设置
    + xlab="Time", ylab="Concentration (ppb)", 
    + main="Time trend of Oxides of Nitrogen") 
    

    2.时间刻度可读化 

    > plot(air$nox~as.Date(air$date,"%d/%m/%Y %H:%M"),type="l", 
    + xaxt="n",                                #不画X轴
    + xlab="Time", ylab="Concentration (ppb)", 
    + main="Time trend of Oxides of Nitrogen") 
    > xlabels<-strptime(air$date, format = "%d/%m/%Y %H:%M") 
    > axis.Date(1,                            #设置X轴刻度显示位置
    + at=xlabels[xlabels$mday==1], #设置刻度为每天一个刻度
    + format="%b-%Y") #设置标记格式

    3.标记特定的时间事件 

    > plot(air$nox~as.Date(air$date,"%d/%m/%Y %H:%M"),type="l", 
    + xlab="Time", ylab="Concentration (ppb)", 
    + main="Time trend of Oxides of Nitrogen") 
    > abline(v=as.Date("25/12/2003","%d/%m/%Y"),col="red")    #在特定时间画垂直线

     

    示例:股票数据图

    > library(quantmod) 
    > library(tseries) 
    > aapl<-get.hist.quote(instrument = "aapl", quote = c("Cl", "Vol"))        #抓取苹果股票数据
    > goog <- get.hist.quote(instrument = "goog", quote = c("Cl", "Vol"))      #抓取谷歌股票数据
    > msft <- get.hist.quote(instrument = "msft", quote = c("Cl", "Vol"))      #抓取微软股票数据
    > plot(msft$Close,main = "Stock Price Comparison", 
    + ylim=c(0,800), col="red", type="l", lwd=0.5, 
    + pch=19,cex=0.6, xlab="Date" ,ylab="Stock Price (USD)") 
    > lines(goog$Close,col="blue",lwd=0.5) 
    > lines(aapl$Close,col="gray",lwd=0.5) 
    > legend("top",horiz=T,legend=c("Microsoft","Google","Apple"),             #horiz=T图例水平摆开 
    + col=c("red","blue","gray"),lty=1,bty="n")

    > getSymbols("AAPL",src="yahoo") 
    > barChart(AAPL)                       #画成交量与股价图
    > candleChart(AAPL,theme="white")      #画蜡烛图

     

    转载于:https://www.cnblogs.com/all1008/p/10110749.html

    展开全文
  • 绘制时间序列图(Matplotlib)

    千次阅读 2020-01-28 23:55:18
    使用Matplotlib绘制时间序列图时,横轴的时间数量与纵轴的数据个数一致是非常关键的。 实际处理数据过程中,可能会出现时间戳重复,导致纵轴数据重复的情况。 For example: flow = df['flow'].values flow_dates = ...
  • 利用R语言绘制时间序列图

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

    千次阅读 2018-03-22 11:10:00
    matlab入门阶段,需要用matlab画时间序列图,比较简单,可能以后看起来会感觉很小儿科,但是一些细节上的操作害怕有些遗漏,特此记录。 1、可以利用excel打开时间序列文件,截取需要操作的数据所在的区域,其实在...
  • Excel-时间序列图(趋势)分析

    万次阅读 2014-01-19 15:28:41
    时间序列图是描述流程特性值在一段时间内变化波动的趋势和规律的统计工具,如整个流程大体在什么范围内运行、是否具有波动较大的时期或时点等。 通过对趋势的分析,也可以实现对未来数据变化的预测。通过对波动的...
  • 在python中经常会用到pandas来处理数据,最常用的数据类型是dataframe,但是有时候在dataframe有时间字段需要画时间序列图的时候会遇到一些问题,下面是我处理这个问题的一个小案例,希望可以帮到在坑里的小朋友哦,...
  • pandas画时间序列图

    千次阅读 2019-12-15 16:12:35
    import pandas as pd import matplotlib.pyplot as plt import numpy as np ...# 新建一个时间序列 t_range = pd.date_range('2016-01-01', '2016-12-31', freq='H') t_range # DatetimeIndex(['2016-01-01...
  • 近期做时间序列预测,无奈自带的预测图像太渣太难看。于是用ggplot2自己调整出一张漂亮的图。...* 案例一为原始时间序列图(图层概念),案例二为优化预测通道后展示图(图例修改)Example1##整理出两个画
  • R语言-时间序列绘图

    万次阅读 2015-05-12 19:49:33
    1、绘制自相关和偏自相关的命令为: > par(pin=c(4,2),mfrow=c(2,1))  #设置图形大小(长4英寸,高2英寸),分成2行1列 > layout(matrix(c(1,1,2,2),2,2,byrow=TRUE))  #将绘图区分成4个单元格,第1,2个为一行...
  • matplotlib画时间序列图

    万次阅读 2017-03-16 17:08:33
    加上这一行后能正常画出,但是横坐标没有显示日期。 google了一下,发现一个解决方法, import matplotlib.dates as mdates xfmt = mdates.DateFormatter( '%y-%m-%d %H:%M' ) ax.xaxis.set_major_...
  • [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
  • 对于像上图这样的时间序列图,X轴是日期,应该如何对特殊点作注释呢? 使用annotate运行报错 求助大神们 /(ㄒoㄒ)/~~ @赵赵赵颖
  • 在画股票日内的分时,发现中午有一段时间是没有数据的,导致画出来的中间都一一段横盘时间,为了美观,试了很多种办法想把那一段横线去掉,最后发现利用 FuncFormatter 可以实现 官方给出的方法 11.1.9 Skip ...
  • 序列图

    千次阅读 2016-11-04 13:06:16
    序列图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互。很象类图,开发者一般认为序列图只对他们有意义。然而,在一个组织中,业务人员会发现序列图显示不同的业务对象如何交互,对于交流当前业务如何...
  • 时间序列

    千次阅读 2018-05-10 18:31:14
    一、 时间序列的模式1. 水平模式当数据围绕着一个...3. 季节模式通常是指在超过一年的时期内,由于受季节的影响,时间序列图呈现重复模式。4. 趋势与季节模式即包含趋势模式,又包含季节模式5. 循环模式在一...
  • matplotlib画图- 时间序列折线

    千次阅读 2019-03-17 16:23:24
    今天做了一下毕设的图(关于结果比较的 时间序列图) 首先我说明 找了半天的博客 没有找到好的方法做x轴为datetime,很麻烦 所以我打算做int32类型的,但发现没法转换 结果采用特殊方法解决的 1.数据集查看 int...
  • Matlab时间序列分析

    万次阅读 多人点赞 2018-11-13 18:53:46
    在引入时间序列前,先介绍几个matlab函数 matlab中的gallery函数简析 Matlab 中的 gallery 函数是一个测试矩阵生成函数。当我们需要对某些算法进行测试的时候,可以利用gallery函数来生成各种性质的测试矩阵。其用法...
  • UML序列图总结

    千次阅读 2015-06-05 10:51:50
    序列图主要用于展示对象之间交互的顺序。 序列图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线...
  • UML--序列图详解

    千次阅读 2019-09-25 10:15:12
    序列图(Sequence Diagram)是对象之间基于时间顺序的动态交互,它显示出了随着时间的变化对象之间是如何进行通讯的。序列图的主要用途之一是从一定程度上更加详细地描述用例表达的需求,并将其转化为进一步的更加...
  • UML中的序列图(时序图)

    千次阅读 2015-07-26 16:45:58
    序列图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 486,211
精华内容 194,484
关键字:

时间序列图