我正在尝试在 map 上的特定坐标上绘制玫瑰图/圆形直方图,类似于在软件包mapplots
中在 map 上绘制饼图。
以下是使用mapplots
生成的示例(有关代码,请参见下文),我想用玫瑰图替换饼图
软件包circular
可以让我绘制玫瑰图,但是我无法将其与mapplots
包集成在一起。对实现此目标的替代软件包或代码有任何建议吗?
为回答代码制作 map 的问题。全部基于mapplots
包。我为 map 下载了shapefile(我认为是http://www.freegisdata.org/)
library(mapplots)
library(shapefiles)
xlim = c(-180, 180)
ylim = c(-90, 90)
#load shapefile
wmap = read.shapefile ("xxx")
# define x,y,z for pies
x <- c(-100, 100)
y <- c(50, -50)
z1 <- c(0.25, 0.25, 0.5)
z2 <- c(0.5, 0.2, 0.3)
z <- rbind(z1,z2)
# define radii of the pies
r <- c(5, 10)
# it's easier to have all data in a single df
plot(NA, xlim = xlim, ylim = ylim, cex = 0.75, xlab = NA, ylab = NA)
draw.shape(wmap, col = "grey", border = "NA")
draw.pie(x,y,z,radius = r, col=c("blue", "yellow", "red"))
legend.pie (x = -160, y = -70, labels = c("0", "1", "2"), radius = 5,
bty = "n", cex = 0.5, label.dist=1.5, col = c("blue", "yellow", "red"))
然后可以使用legend.bubble添加饼图大小的图例
最佳答案
看一看this example,您可以将 map 用作背景,用Plotrix
或ggplot2
绘制玫瑰图。无论哪种情况,您都希望将这些图的多个覆盖在ggplot上易于实现的 map 上,只需看一下示例即可。
关于R:在 map 上绘制圆形直方图/玫瑰图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21676721/