【问题标题】:add.pie() not rendering pie chart on plotted mapadd.pie() 不在绘制的地图上呈现饼图
【发布时间】:2016-01-14 00:40:32
【问题描述】:

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

#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() 命令,我能够看到这些点重叠。

【问题讨论】:

    标签: r plot maps pie-chart


    【解决方案1】:

    要将其绘制在可以看到饼图的位置,您可以尝试以下代码。这为您提供了一个起点,但不能解释正在发生的事情。

    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)
    

    【讨论】:

    • 您的坐标似乎在绘图之外以及饼图的大小方面存在问题。最初它非常大。
    • 我不这么认为。因为我尝试了各种尺寸,而且坐标也相同,最终向我展示了情节。问题是 ad.pie() 函数读取我的坐标的方式,它似乎不理解它们。当我将 x=-72 更改为 x=coord2$x 时,该函数渲染了图形。所以我不确定它背后的原因,但是将坐标转换为正确的对象形式似乎可以解决问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 2014-05-12
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    相关资源
    最近更新 更多