两个刻度在同一轴上

时间:2012-11-13 04:55:45

标签: r

我不确定是否有可能做我想做的事。我想用两个比例绘制一个x轴,如下图所示。非常感谢,

enter image description here

3 个答案:

答案 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")

生成此图:enter image description here

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

enter image description here

编辑 - 把它搞砸了

答案 2 :(得分:1)

我并不完全确定,但作为一个起点,请查看?facet_grid()中的ggplot2

并排获得两个地块不应该太难。然后你可能想要关闭轴,然后加回适当的比例

向谷歌询问axis.line = theme_blank()

祝你好运!

相关问题