如何结合ggplot和情节?

时间:2014-07-01 13:56:04

标签: r plot ggplot2

我试过了:

ggplot(temp, aes(x,y)) + geom_hex(bins=100) + plot(y1,x1,pch = 0, col="red")

图像没有第二部分(红点)。我应该改变什么?

> str(x)
 num [1:1397] 1.62 1.62 1.62 1.63 1.63 1.63 1.63 1.63 1.63 1.63 ...
> str(y)
 int [1:1397] 2998 3001 3005 2993 2998 2999 3002 3003 3004 3006 ...
> str(x2)
 num [1:6] 1.7 1.9 2.18 2.7 2.6 3
> str(y2)
 num [1:6] 3000 3600 4000 4800 5100 5600

重点是矢量长度不一样(1397对6)。

它完美无缺。我从x2和y2创建了data.frame。

ggplot(temp, aes(x,y)) +
+   geom_hex(bins=100) +
+ geom_point(data=mk , aes(x=x2, y=y2), col = "red")

2 个答案:

答案 0 :(得分:2)

如果您想将它们合并到一个图中,您可以在ggplot2中执行所有操作(假设x1y1位于数据框df中):

ggplot(temp, aes(x,y)) +
  geom_hex(bins=100) +
  geom_point(aes(x=x1, y=y1), data=df, shape=20, size=2, color="red")

答案 1 :(得分:0)

可以使用包gridBase完成。我仍然更喜欢使用sp.plot而不是ggplot来绘制地图。所以这个功能可能很有用。我应该提到this页面作为引导我回答的信息。

一个虚拟的例子:

library(gridBase)
library(grid)
library(ggplot2)

data  <- data.frame(x=1:10,y=rnorm(10))

par(mfrow = c(1,2))

vp <- viewport(height = unit(1,"npc"), width=unit(0.5, "npc"), 
              just = c("left","top"),
              y = 0, x = 0)


print(plot(data$x,data$y,xlab="x",ylab="y",pch = 21,bg="black"),vp=vp)

vp <- viewport(height = unit(1,"npc"), width=unit(0.5, "npc"), 
              just = c("left","top"),
              y = 1, x = 0.5)


print(ggplot(data,aes(x,y)) + geom_point(),vp=vp)