我有一个如下所示的数据集:
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中的等效函数调用?
答案 0 :(得分:5)
你的问题在于设置自由小平面。将小平面刻度设置为空闲后,您无法添加coord_equal()
如果消除了自由缩放,则coord_equal()
可以正常工作。
答案 1 :(得分:1)
也许facet_wrap()
是更好的选择,据我所知, ggplot2 中没有针对单个面板的xlim
和ylim
控件。