5

我想用两个比例绘制一个 x 轴,如下图所示:

在此处输入图像描述

4

3 回答 3

9

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

这产生了这个情节:在此处输入图像描述

于 2012-11-13T08:37:59.500 回答
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)

在此处输入图像描述

编辑 - 让它变得有点

于 2012-11-13T08:01:27.087 回答
1

我不完全确定,但作为一个起点,看看?facet_grid().ggplot2

将两个地块并排放置应该不会太难。然后您可能想要关闭轴,然后添加适当的比例

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

于 2012-11-13T05:54:14.333 回答