0

私はここの初心者です。質問を正しく書いていないことをお詫びします:p

図 1 の目的は、私の研究サイト (RB1 という名前) の期間 (2019-05 から 2019-10 までの 8 つの日付が選択された) の平均 NDVI 値に関するグラフをプロットすることです。また、草刈りイベントのある日付を示す縦線をプロットします。

2. 選択した 8 つの日付の NDVI 値を計算し、CSV ファイルを作成しました。(PS.「伐採」とは、調査地の草地が伐採された時期を意味するため、geom_vline を使用して、対応する日付を垂直線として表示する必要があります)

infor <- read_csv("plotting information.csv")
infor
# A tibble: 142 x 3
   date         NDVI cutting
   <date>      <dbl> <lgl>  
 1 2019-05-12 NA     NA     
 2 2019-05-13 NA     NA     
 3 2019-05-14 NA     NA     
 4 2019-05-15 NA     NA     
 5 2019-05-16 NA     NA     
 6 2019-05-17  0.787 TRUE      
# ... with 132 more rows

3、問題は、ggplot を実行するとき、最初に x 軸を全期間 (2019-05 から 2019-10) として保持したいのですが、もちろんその間のすべての日付を表示しないことです。 x 軸に表示される日付が多すぎます)。したがって、scale_x_discrte(breaks=, labels=)特定の日付を NDVI 値で表示するために を実行します。

次に、草が刈られた日付も表示しますgeom_vline

しかし、 の前提条件scale_x_discrtefactor私の日付までですが、 の前提条件geom_vlineは日付をそのままにしておくことのようnummericです。これら2つの呼び出しは矛盾しているようです。

y1 <- ggplot(infor, aes(factor(date), NDVI, group = 1)) +
  geom_point() +
  geom_line(data=infor[!is.na(infor$NDVI),]) + 
  scale_x_discrete(breaks = c("2019-05-17", "2019-06-18", "2019-06-26", "2019-06-28","2019-07-23","2019-07-28", "2019-08-27","2019-08-30", "2019-09-21"), 
                   labels = c("0517","0618","0626","0628","0723","0728", "0827","0830","0921"))) 


y2 <- ggplot(infor, aes(date, NDVI, group = 1)) +
  geom_point() +
  geom_line(data=infor[!is.na(infor$NDVI),])) 

y1 に geom_vline を追加すると、縦線がプロットに表示されません: y1 + geom_vline

y2 に追加すると、垂直線が表示されましたが、日付 (x 軸) が奇妙です (ここでは scale_x_ を実行しないため、y1 として表示されません) y2 + geom_vline

   y1 + 
      geom_vline(data=filter(infor,cutting == "TRUE"), aes(xintercept = as.numeric(date)), color = "red", linetype ="dashed")

お役に立てれば幸いです!前もって感謝します!:D

4

1 に答える 1