我不确定是否有可能做我想做的事。我想用两个比例绘制一个x轴,如下图所示。非常感谢,
答案 0 :(得分:8)
ggplot2
版本可能如下所示:
library(ggplot2)
x = c(1,2,3,4,5, 10,20,30,40,50)
y = c(1,2,2,3,4, 2,1,3,5,5)
# You should introduce cond - condition to separate axises - by yourself
df = data.frame(x=x,y=y,cond=ifelse(x>5,"x2","x1"))
ggplot(df, aes(x,y,group=cond)) + geom_line() + geom_point(aes(shape=cond), size=4) + facet_grid(.~cond, scales="free_x")
生成此图:
答案 1 :(得分:7)
这是使用基础R图形的版本。您可以更多地使用它来获得您想要的东西,但这基本上就是您所追求的。
plot.new()
par(mfcol=c(1,2))
plot(1:5,ann=FALSE,bty="n",type="l",ylim=c(0,25))
grid(ny=NA)
par(mar=c(5.1, 0, 4.1, 2.1))
plot(c(10,20,30,40,50),c(8,5,15,20,20),yaxt="n",ann=FALSE,bty="n",type="l",ylim=c(0,25))
grid(ny=NA)
par(new=TRUE)
par(mfcol=c(1,1))
par(bty="l")
par(mar=c(5.1, 4.1, 4.1, 2.1))
plot(NA,ylim=c(0,25),type="n",xaxt="n",yaxt="n",ann=FALSE)
box()
grid(nx=NA,ny=NULL)
编辑 - 把它搞砸了
答案 2 :(得分:1)
我并不完全确定,但作为一个起点,请查看?facet_grid()
中的ggplot2
。
并排获得两个地块不应该太难。然后你可能想要关闭轴,然后加回适当的比例
向谷歌询问axis.line = theme_blank()