r - 如何在 R map 库中绘制正确的颜色

标签 r colors maps fill choropleth

我正在尝试使用 R map 库为特定国家/地区绘制特定颜色。我可以填写颜色,但它们没有正确地与各自的国家相关联。我想知道是否有人知道为什么?

我的数据框是 «filld» 并且有 3 列:第一列是国家名称,第二列只是一些数字数据,第三列是颜色:

              countries toplot     color
1             Argentina     -1       red
2               Armenia     -1       red
3             Australia     -1       red
4               Bahrain     -1       red
5              Botswana     -1       red
6               Belgium     -1       red
7              Bulgaria     -1       red
8                Canada     -1       red
9                 Chile     -1       red
10               Taiwan     -1       red
11              Croatia     -1       red
12       Czech Republic     -1       red
13     UK:Great Britain     -1       red
14                Egypt     -1       red
15              Denmark     -1       red
16              Finland      0    yellow
17               France      0    yellow
18              Georgia      0    yellow
19              Germany      0    yellow
20      China:Hong Kong      0    yellow
21              Hungary      0    yellow
22            Indonesia      0    yellow
23                 Iran      0    yellow
24              Ireland      0    yellow
25               Israel      0    yellow
26                Italy      0    yellow
27                Japan      0    yellow
28               Jordan      0    yellow
29           Kazakhstan      1 darkgreen
30                Korea      1 darkgreen
31               Kuwait      1 darkgreen
32              Lebanon      1 darkgreen
33            Lithuania      1 darkgreen
34             Malaysia      1 darkgreen
35                Malta      1 darkgreen
36              Morocco      1 darkgreen
37          Netherlands      1 darkgreen
38          New Zealand      1 darkgreen
39  UK:Northern Ireland      1 darkgreen
40               Norway      1 darkgreen
41                 Oman      1 darkgreen
42            Palestine      1 darkgreen
43               Poland      1 darkgreen
44             Portugal      1 darkgreen
45                Qatar      1 darkgreen
46               Russia      1 darkgreen
47         Saudi Arabia      0    yellow
48               Serbia      0    yellow
49            Singapore      0    yellow
50      Slovak Republic      0    yellow
51             Slovenia     -1       red
52         South Africa     -1       red
53                Spain     -1       red
54               Sweden     -1       red
55             Thailand      1 darkgreen
56               Turkey      1 darkgreen
57 United Arab Emirates      0    yellow
58                  USA      1 darkgreen

这是我使用的代码:

library(maps)       # Provides functions that let us plot the maps
library(mapdata)    # Contains the hi-resolution points that mark out the countries.

map('world', filld$countries, fill=T, border="darkgray", col=filld$color)
map('world', col="darkgray", add=T)

但这是我得到的颜色: Worldmap with wrong colors 澳大利亚应该填红色,但是是绿色;西类牙应该是红色的,但是是黄色的;法国应该是黄色的,但它是深绿色的;等等…… 不过有些国家还可以,例如美国应该是深绿色。

任何意见将不胜感激。谢谢!

最佳答案

我不完全确定是什么导致了这个问题,但是先绘制世界然后用颜色填充就可以了。

map('world', col='darkgray')
for (color in unique(filld$color)) {
    map('world', regions=filld$countries[which(filld$color==color)], fill=T, border="darkgray", col=color,add=T)
}

enter image description here

关于r - 如何在 R map 库中绘制正确的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38901964/

相关文章:

java - 无法更改布局边框颜色

java - 有什么方法可以知道低于特定值的颜色的 RGB 值是较浅的颜色

list - 在 Clojure 中将列表列表转换为列表列表的映射

go - 在 map 中存储多个值

javascript - 使用 leafletjs 创建箭头

r - 将因子水平应用于缺少因子水平的多个列

python - 设置多边形颜色 Matplotlib

pdf - 将绘图对象存储在列表中

r - 如何配置 sendmailR 发出 STARTTLS

r - 根据名字对性别(以及可能的年龄范围)进行分类