通过R中的ggplot在地图(多边形)中自定义颜色并绘制图例

时间:2015-05-25 02:27:57

标签: r plot ggplot2

我正在尝试使用个性化颜色和相应的图例绘制某个地图(多边形) - 它是我数据中的列。我不知道如何在我的代码中确定这些颜色和标签。当我绘制地图时,颜色是其他颜色。

我的真实数据有要绘制的扇区的创建者,但为了解释你,我只会显示前六行以及颜色和图例的标签

unique(data$color)
[1] green  yellow red    orange blue  
Levels: blue green orange red yellow

unique(data$legend)
[1] aa1  aa2 aa3 aa4 aa5 
Levels: aa1  aa2 aa3 aa4 aa5 

head(data)

            id  color legend
1 3.300456e+14  green    aa2
2 3.300456e+14 yellow    aa4
3 3.300456e+14    red    aa5
4 3.300456e+14 orange    aa3
5 3.300456e+14  green    aa2
6 3.300456e+14 orange    aa3

第一种情况:传奇确定,但有其他颜色

ggplot() +

geom_map(data=data, aes(map_id=id, fill = color), map=map.fort)+

geom_path(data=map.fort, aes(x=long, y=lat, group=group), colour="black", size=0.25)

enter image description here

第二种情况:颜色没问题,但传说没有绘制

geom_map(data=data, aes(map_id=id),fill = data$color, map=map.fort)+

geom_path(data=map.fort, aes(x=long, y=lat, group=group), colour="black", size=0.25)

enter image description here

我想要的只是绘制我的地图,就像第一张图片一样,但是我的颜色是个性化的,并且是相应的图例标签

1 个答案:

答案 0 :(得分:2)

尝试将fill美学设置为as.character(color),然后添加

scale_fill_identity(guide = "legend")

在geom之后。

未经测试,因为例如不可复制。

回答修改后的问题:

不需要将颜色和图例放在数据框中; ggplot以不同的方式处理它。将fill美学设置为legend并添加

scale_fill_manual(values=(aa2="green", aa3="orange", aa4="yellow", aa5="red"))

但现在这可能是重复的。