2017-02-23 11 views
0

私は数年の時系列をプロットしたいが、夏の月だけプロットする。私の問題は、私がX軸に日付を追加しようとするときです。のは、私のデータは、以下の構造を有しているとしましょう:季節をプロットするときに日付を追加するggplot2

 day  date value  Region variable Data 
     1 1998-06-01 72.69090  IP  O3 OBS 
     2 1998-06-02 86.09606  IP  O3 OBS 
     3 1998-06-03 93.50078  IP  O3 OBS 
     4 1998-06-04 96.41037  IP  O3 OBS 
     ......................................... 
     1194 2010-08-29 97.36273  IP  O3 OBS 
     1195 2010-08-30 100.09310  IP  O3 OBS 
     1196 2010-08-31 98.55973  IP  O3 OBS 

と私は

をこれまでにDAT $日付を変換し、私は私のプロットをした:

m <- ggplot(dat, aes(day, value)) + 
     geom_line(aes(color=Data),size=0.3,na.rm=TRUE) 

その場合、私のプロットは次のようになります。 enter image description here

代わりにdat $ dateを使用した場合:

m <- ggplot(dat, aes(date, value)) + 
     geom_line(aes(color=Data),size=0.3,na.rm=TRUE) + 
     scale_x_date(date_breaks ="1 year",labels = date_format("%Y")) 

それから私は持っているでしょう: だから、enter image description here

、どのように私は日付が、最初のものと同様のプロットを得ることを追加することができますか? 私は3ヶ月しかプロットしていないからだと思いますが、私は連続していたいと思います。何か案が?事前

+0

問題を再現できません。再現可能な例を提供する必要があります。 – Haboryme

答えて

1

おかげで、日付や連続軸がヶ月をスキップしませんので、あなたは、カスタムの区切りとx軸を作ることができます。最初に、プロットする日の要素をカスタムブレーク軸を作成するよりも作成します。

set.seed(314) 
dat <- data.frame(value = rnorm(1000, mean = 90, sd = 20), 
       day = as.Date('2017-01-01')+1:1000) 
library(ggplot2) 
library(lubridate) 

dat.p <- dat[month(dat$day) %in% c(6,7,8),] 

# plot with a date axis 
ggplot(dat.p, aes(day, value)) + geom_line(size=0.3,na.rm=TRUE) 

dat.p$x <- factor(dat.p$day) 

dat.b <- dat.p[mday(dat.p$day)==1,] 

#plot with a custom axis 

ggplot(dat.p, aes(x = x, y = value, group = 1)) + geom_line(size=0.3,na.rm=TRUE) + 
    scale_x_discrete(breaks = dat.b$x, labels = dat.b$day) 
+0

ありがとう、それは私のために働いた。 – user3231352

関連する問題