在 ggplot2 0.9.0 中使用 axis.line 仅删除 y 轴

标签 r graph ggplot2

<分区>

Possible Duplicate:
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)

导致

Error in removeDLFromGPath(gPath, name, strict, greppath, grepname, global, : gPath (axis_v::axis.line.segments) not found

//中号

最佳答案

这是一个可能有用的解决方法。使用 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)

关于在 ggplot2 0.9.0 中使用 axis.line 仅删除 y 轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11402875/

相关文章:

r - 在ggplot2中,如何绘制散点的平均点并连接这些平均点?

r - R散点图中的轴位置

r - 在 1 个变量和变量列表之间执行所有可能的线性回归

r - 使用 R 将图形导出到 .eps 文件

algorithm - 确定最小割的唯一性

r - ggplot2 避免图例符号周围的方框

R bigmemory attach.big.matrix 对于非常宽的矩阵来说非常慢

r - 如何在忽略 R 中的值的情况下对 df 求和?

algorithm - 断开图中的最大二分匹配

validation - R - 检查组分配的一致性,不同名称的组标签