我正在尝试生成一个世界地图的绘图,其中每个国家的颜色对应于数据框中存储的特定值。
> aggregated_country_data
country num_responses region
1 AL 1 Albania
2 AM 1 Armenia
3 AR 32 Argentina
...
75 ZW 3 Zimbabwe
这是我尝试过的内容。
library(rworldmap)
library(ggplot2)
map.world <- map_data(map="world")
gg <- ggplot()
gg <- gg + theme(legend.position="none")
gg <- gg + geom_map(data=map.world, map=map.world, aes(map_id=region, x=long, y=lat), fill="white", colour="black", size=0.25)
gg
这段代码可以很好地绘制世界地图,接下来我想按照聚合的国家数据中“num_responses”的值比例为每个国家添加颜色。
gg <- gg + geom_map(data=aggregated_country_data, map=map.world, aes(map_id=region, fill=num_responses), color="white", size=0.25)
gg
现在它将每个颜色编码为对应于国家代码的颜色,而不是聚合国家数据中列num_responses中的值。
很明显我没有完全掌握ggplot2的使用方法,但我无法弄清楚问题所在。
如果您有任何建议,我将不胜感激, Brad
我找到了问题所在,与ggplot2或其他任何我正在做的事情无关。聚合国家数据数据框架中的'region'名称与map.world中不同。我的输入数据(aggregated_country_data)默认使用两个字母的国家代码,我使用countrycode R包将其转换为国家名称(在数据框中称为'region'),但它使用的名称约定与map.world中存在的名称约定不同。所以这是一个完全不同的问题。
fill=factor(num_responses)
,否则颜色可能太相似了。 - mucio