将ggplot绘图映射为3帧

时间:2012-09-26 14:31:46

标签: r split ggplot2

是否可以提取ggplot图形/贴图的特定部分并将它们并排放置在辅助图形中,但仍然将点添加到三个帧中,就好像它们仍然是一个图形,即对于下面的地图

enter image description here

创建一个分为3个部分的地图,然后可以将其作为一个图形进行操作(即同时向图形的所有三个部分添加点数?

enter image description here

更新:可重复的示例

set.seed(1)
dfx<-c(sample(1:1000,100),sample(2000:3000,100),sample(4000:3000,100))
dfy<-c(sample(1:1000,100),sample(2000:3000,100),sample(4000:3000,100))

p<-ggplot()+
coord_fixed()+
geom_point(aes(x=dfx,y=dfy))
p

enter image description here

1 个答案:

答案 0 :(得分:5)

我可以在那里中途但不能保留coord_equalcoord_fixed的效果,同时允许自由音阶...希望其他人可以介入并完成其余部分。 (这已经出现过 - scatterplot with equal axes - 但我还没有看到解决方案。)

dd <- data.frame(dfx,dfy)
dd2 <- transform(dd,panel=cut(dfx,seq(0,4000,by=1000),labels=1:4))
p <- ggplot(dd2)+geom_point(aes(dfx,dfy)) + coord_equal()
p + facet_wrap(~panel,nrow=1,scale="free")