3

重複の可能性:
ggplot を使用して x 軸と y 軸を個別に制御できますか?

これを行う方法を説明した以前の投稿を見ました ( ggplot を使用して x 軸と y 軸を個別に制御できますか? )-しかし、ggplot 0.9.0 では機能しません。x 軸線ではなく、y 軸線のみを削除する方法を教えてください。axis.line オプションでは、2 つの軸を区別することはできません。

 u<-expand.grid(temp=seq(0,100,10),hum=c(20,90),delta=as.factor(seq(0,10,by=5)))

u$model<-exp(u$temp*log(0.88)+u$hum*log(1.01)+as.numeric(u$delta)*log(1.1)) 
u2<-subset(u,hum==20)

u4<-subset(u,hum==90)
pl<-ggplot()+
  geom_line(data=u2,aes(x=u2$temp,y=u2$model,colour=u2$delta,group=u2$delta))+
  geom_line(data=u4,aes(x=temp,y=model,colour=delta,group=delta))

pl+theme_bw()+
  opts(panel.grid.minor=theme_blank(),
       panel.grid.major=theme_blank(),
       legend.key=theme_blank(),
       panel.border=theme_rect(colour=NA),
       axis.line=theme_segment(colour='grey',size=1))

さて、y 軸ではなく x 軸だけを表示するにはどうすればよいでしょうか。

以前の投稿 おすすめ

grid.remove(gPath("axis_v", "axis.line.segments"), grep=TRUE)

その結果

removeDLFromGPath(gPath, name, strict, greppath, grepname, global, のエラー: gPath (axis_v::axis.line.segments) が見つかりません

//M

4

1 に答える 1

2

ここに役立つ回避策があります。プロット制限を厳密に設定してcoord_cartesian()から、手動で x 軸線を追加します。プログラムで y 軸の範囲を計算するのはそれほど難しくありません。

opts(axis.line=theme_blank()) +
coord_cartesian(ylim=c(-0.05, 3.3)) + 
geom_hline(yintercept=-0.05, colour="grey", size=1.5)
于 2012-07-09T22:36:57.223 に答える