如何绘制3个不同区域的时间数据?

时间:2015-06-19 19:33:34

标签: r plot temporal-database

我想绘制我的时态数据,但出于某种原因,我没有清楚地绘制情节。我用这个函数:

plot(temperature~month*area, data=mydata)

但是这个功能并没有将这些区域分开。

我的例子是:

            area    month   temperature
              d1    november    18,723
              d1    november    16,963
              d1    november    22,753
              d1    november    30,495
              d1    november    26,818
              d1    november    22,944
              i1    november    18,485
              i1    november    17,368
              i1    november    16,844
              i1    november    24,171
              i1    november    28,072
              i1    november    28,766
              i1    november    25,744
              i1    november    22,920
              c1    november    17,272
              c1    november    16,225
              c1    november    16,058
              c1    november    22,920
              c1    november    28,642
              c1    november    26,256
              d1    december    17,558
              d1    december    28,468
              d1    december    21,318
              i1    december    21,246
              i1    december    20,103
              c1    december    27,776
              c1    december    21,652
              c1    december    19,793
              c1    december    18,628
              c1    december    17,796

1 个答案:

答案 0 :(得分:1)

您的数据有点奇怪。你只有两个约会。您的三个区域中的每个区域都具有多个临时值。使用线图是没有意义的。以下代码提供按区域分组的散点图。它使用库ggplot2按组进行绘图。

dat <- read.table(
  header=TRUE, text='area day_month_year temperature 
d1 09_11_2013 18,723 
d1 09_11_2013 17,558 
d1 09_11_2013 16,963 
d1 09_11_2013 22,753 
d1 09_11_2013 28,468 
d1 09_11_2013 30,495 
d1 09_11_2013 26,818 
d1 09_11_2013 22,944 
d1 10_11_2013 21,318 
i1 09_11_2013 18,485 
i1 09_11_2013 17,368 
i1 09_11_2013 16,844 
i1 09_11_2013 24,171 
i1 09_11_2013 28,072 
i1 09_11_2013 28,766 
i1 09_11_2013 25,744 
i1 09_11_2013 22,920 
i1 10_11_2013 21,246 
i1 10_11_2013 20,103 
c1 09_11_2013 17,272 
c1 09_11_2013 16,225 
c1 09_11_2013 16,058 
c1 09_11_2013 22,920 
c1 09_11_2013 27,776 
c1 09_11_2013 28,642 
c1 09_11_2013 26,256 
c1 09_11_2013 21,652 
c1 10_11_2013 19,793 
c1 10_11_2013 18,628 
c1 10_11_2013 17,796')

# convert temp to numeric data
dat$temp=as.numeric(gsub(',','.',dat$temp))

# convert day_month_year to date and add to dataframe
dat$date=as.Date(dat$day_month_year,"%d_%m_%Y")

# scatter plot by group
library(ggplot2)
ggplot(dat, aes(x=date, y=temp, colour=area, group=area)) + geom_point()

我注意到您更改了数据中日期的格式。此解决方案使用您的原始格式。如果要继续使用具有月份名称的新格式,则需要修改as.Date强制转换。