具有相等轴的散点图

时间:2010-08-25 08:22:24

标签: r ggplot2

我有一个如下所示的数据集:

DataFrame <- data.frame(x=runif(25),y=runif(25),
                        z=sample(letters[1:4],25,rep=TRUE))

使用Lattice软件包,我可以用相同的轴(通过中心的1:1线)制作一个散点图,其中包含以下几行:

xyplot(y ~ x | z, data=DataFrame,
       scales=list(relation="free"),
       prepanel=function(x,y,...) {
         rg <- range(na.omit(c(x,y)))
         list(xlim=rg,ylim=rg)
       },panel=function(x,y,...) {
         panel.abline(0,1)
         panel.xyplot(x,y,...)
       })

在ggplot2中,我已经走到了这一步:

ggplot(data=DataFrame) + geom_point(aes(x=x,y=y)) +
  facet_grid(~z,scales="free") + coord_equal(ratio=1) +
  geom_abline(intercept=0,slope=1)

但我不确定coord_equal()是否是我正在寻找的功能。什么可能是ggplot2中的等效函数调用?

2 个答案:

答案 0 :(得分:5)

你的问题在于设置自由小平面。将小平面刻度设置为空闲后,您无法添加coord_equal()如果消除了自由缩放,则coord_equal()可以正常工作。

答案 1 :(得分:1)

也许facet_wrap()是更好的选择,据我所知, ggplot2 中没有针对单个面板的xlimylim控件。