对齐散点图的X轴和箱图

时间:2015-05-20 07:19:59

标签: r plot

我在R中叠加两个图像。一个图像是一个箱形图(使用boxplot()),另一个是散点图(使用scatterplot())。我注意到沿x轴的刻度差异。 (A)是箱线图比例。 (B)用于散点图。

enter image description here

我一直试图做的是重新缩放(B)以适应(A)。我注意到散点图中有一个叫做xlim的条件。尝试过,没有用。我也注意到这个例子出现了,因为我正在输入问题:Change Axis Label - R scatterplot

尝试过,没有工作。

如何修改x轴以将比例从1.0,1.5,2.0,2.5,3.0更改为1,2,3。

在Stata中,我知道你可以指定x轴范围,然后指出它们之间的升压。例如,范围可以是0-100,并且每个可测量点将被设置为10.因此,您最终得到10,20,....,100。

我的R代码,看起来像这样:

library(car)
boxplot(a,b,c) 
par(new=T)
scatterplot(x, y, smooth=TRUE, boxplots=FALSE) 

我已尝试修改散点图,但没有成功:

scatterplot(x, y, smooth=TRUE, boxplots=FALSE, xlim=c(1,3))

1 个答案:

答案 0 :(得分:4)

正如评论中提到的那样使用as.factor,那么xaxis应该对齐。这是ggplot解决方案:

#dummy data
dat1 <- data.frame(group=as.factor(rep(1:3,4)),
                   var=c(runif(12)))
dat2 <- data.frame(x=as.factor(1:3),y=runif(3))


library(ggplot2)
library(grid)
library(gridExtra)

#plot points on top of boxplot
ggplot(dat1,aes(group,var)) +
  geom_boxplot() +
  geom_point(aes(x,y),dat2)

enter image description here

绘制为单独的图

gg_boxplot <- 
      ggplot(dat1,aes(group,var)) +
      geom_boxplot()

gg_point <- 
  ggplot(dat2,aes(x,y)) +
  geom_point()

grid.arrange(gg_boxplot,gg_point,
             ncol=1,
             main="Plotting is easier with ggplot")

enter image description here

修改 按照@RuthgerRighart

的建议使用xlim
#dummy data - no factors
dat1 <- data.frame(group=rep(1:3,4),
                   var=c(runif(12)))
dat2 <- data.frame(x=1:3,y=runif(3))

par(mfrow=c(2,1))
boxplot(var~group,dat1,xlim=c(1,3))
plot(dat2$x,dat2$y,xlim=c(1,3))

enter image description here