可能重复:
can I separately control the x and y axes using ggplot?
我看到之前的帖子描述了如何执行此操作(can I separately control the x and y axes using ggplot?) - 但它在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)
//中号
答案 0 :(得分:1)
这是一个可能有用的解决方法。严格使用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)