我正在尝试制作一个复合图,其顶部有一个直方图,底部有一个点图。他们应该以相同的比例显示数据,所以我希望比例尺匹配。
以下是一些几乎可以实现我想要的代码:
ability <- rnorm(50)
parameters <- data.frame(Item=paste("Q",1:10),Difficulty=rnorm(10))
xrange<- range(c(ability,parameters$Difficulty))
print(histogram(ability,endpoints=xrange,xlim=xrange*1.04),
position=c(0,.68,1,1),more=TRUE,newpage=TRUE)
print(dotplot(Item~Difficulty,parameters,xlim=xrange*1.04),
position=c(0,0,1,.7))
的输出
问题是这两个函数中的刻度线并不完全对齐。这两个图在左侧为刻度分配不同的空间量,直方图在右侧有刻度,而点图则没有。我无法弄清楚如何改变它(我怀疑它被隐藏在scale参数中的某处)。
另外,使用打印和位置有点麻烦,有更好的更通用的方法来做到这一点。
提前致谢。
答案 0 :(得分:0)
我想出了如何在基础R图形中做到这一点:
layout(matrix(c(1,2),2,1,byrow=TRUE),heights=c(1,3))
par(mar = c(3.1, 4.1, 3.1, 2.1))
hist(ability,xlim=xrange*1.2,xlab="",col="cyan")
par(mar = c(3.1, 4.1, 0.1, 2.1))
dotchart(parameters$Difficulty,parameters$Item,xlim=xrange*1.2,main="")
这产生了我需要的东西。