add.pie()不会在绘制的地图

时间:2016-01-14 00:40:32

标签: r plot maps pie-chart

我使用以下代码绘制了地图。

#plot map
map("worldHires", "Canada", col="grey80", fill=TRUE, projection="gilbert", orientation= c(90,0,225))
lon <- c(-72, -66, -107, -154)  #fake longitude vector
lat <- c(81.7, 64.6, 68.3, 60)  #fake latitude vector
coord <- mapproject(lon, lat, projection="gilbert", orientation=c(90, 0, 225))  
points(coord, pch=20, cex=2, col="red")

然后尝试使用以下代码绘制饼图

#plot pie
add.pie(z=c(10,60), x=83, y=-72, radius=1, col=c("orange", "red"),    labels="l")
xyz <- make.xyz(lon[1],lat[1],100,200)
add.pie(z=xyz$z, x=xyz$x, y=xyz$y, radius=0.3, col=c("orange", "blue"), labels="", edges=200)
add.pie(z=rpois(4,10), x=lon[1]+5, y=lat[1]+5, radius=0.3, col=c("orange", "blue"), labels="", edges=200)

所有这些代码执行正常,但没有人在我绘制的地图上呈现饼图。

有谁知道我在这里可能会缺少什么。我知道我可以在我的地图上绘图,因为如果我运行更多points()命令,我能够看到这些点重叠。

1 个答案:

答案 0 :(得分:0)

要在可以看到饼图的地方绘制它,您可以尝试下面的代码。这为您提供了一个开始的地方,但不是对正在发生的事情的解释。

library(maps)
library(mapproj)
library(mapdata)
library(mapplots)

map("worldHires", "Canada", col="grey80", fill=TRUE, projection="gilbert", orientation= c(90,0,225))
lon <- c(-72, -66, -107, -154)  #fake longitude vector
lat <- c(81.7, 64.6, 68.3, 60)  #fake latitude vector
coord <- mapproject(lon, lat, projection="gilbert", orientation=c(90, 0, 225))  
points(coord, pch=20, cex=2, col="red")

根据您使用上述coord的方式添加饼图,并使用文档示例设置z。

coord2 <- mapproject(-72, 83, projection = "gilbert", orientation=c(90, 0, 225))
add.pie(z=rpois(6,10), x=coord2$x, y=coord2$y, radius = 0.05)

enter image description here