3

可能重复:
我可以使用 ggplot 分别控制 x 轴和 y 轴吗?

我看到了一篇较早的帖子,描述了如何做到这一点(我可以使用 ggplot 分别控制 x 轴和 y 轴吗?) - 但它在 ggplot 0.9.0 中不起作用。任何想法如何我可以只删除 y 轴线,而不是 x 轴线。axis.line 选项不允许在两个轴之间进行任何区分。

 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))

现在 - 我怎样才能只有 x 轴而不是 y 轴线?

之前的帖子推荐

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 回答