1

x軸にさまざまな日時形式のラベルが付いたggplot2グラフのリストを作成しようとしています。しかし、ggplot が期待するように、format 引数は考慮されません。問題を再現できる最小限のコードを次に示します。

x<-as.POSIXct(strptime(c("2013-01-01 00:00:00","2013-01-02 00:00:00"),format="%Y-%m-%d %H:%M:%S"))
y1<-c(0,1)
y2<-c(0,-1)
df<-data.frame(x=x,y1=y1,y2=y2)
f<-function(a,b){ggplot(df,aes_string(x="x",y=b))+geom_line()+ scale_x_datetime(labels= date_format(a))}
r<-mapply(f,c("%b-%d","%H:%M"),c("y1","y2"),SIMPLIFY=FALSE)

r[2]予想されるプロットを提供します(申し訳ありませんが、写真を投稿できません)がr[1]、軸の形式が正しくありません(一方、プロットするデータは正しく考慮されます)。

助言がありますか?

4

1 に答える 1

1

ggplot環境とmapply約束の評価の間で、aが適切に評価されていません。これforceは、関数内で ing することで回避できます。

例えば

f<-function(a,b){
  a <- force(a)
  ggplot(df,aes_string(x="x",y=b))+geom_line()+ scale_x_datetime(labels= date_format(a))
}
r <- mapply(f,c("%b-%d","%H:%M"),c("y1","y2"), SIMPLIFY = FALSE)

r[1]

ここに画像の説明を入力

r[2]

ここに画像の説明を入力

遅延評価のクワークについて説明すると、遅延評価がより詳細に説明されます。

于 2013-04-16T05:38:09.817 に答える