我试过了:
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")
答案 0 :(得分:2)
如果您想将它们合并到一个图中,您可以在ggplot2
中执行所有操作(假设x1
和y1
位于数据框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)