rworldmap颜色比例不连续

rworldmap颜色比例不连续,r,dictionary,plot,rworldmap,R,Dictionary,Plot,Rworldmap,我正在使用以下示例数据和代码生成世界地图: dF = read.table(text=" country, value 'France', 7 'United Kingdom', 64 'Italy', 68 'Sweden', 82 'Nepal', 85 'Japan', 86 'Germany', 86 'United States', 93 'China', 94 'Nigeria', 95" , header=TRUE, sep=",") library(rwor

我正在使用以下示例数据和代码生成世界地图:

dF = read.table(text="
country, value
'France',  7
'United Kingdom',  64
'Italy',  68
'Sweden',  82
'Nepal',  85
'Japan',  86
'Germany',  86
'United States',  93
'China',  94
'Nigeria',  95"
, header=TRUE, sep=",")

library(rworldmap)

sPDF <- joinCountryData2Map(dF,
                            joinCode = "NAME",
                            nameJoinColumn = "country",
                            verbose = TRUE)

library(RColorBrewer)
colourPalette <- brewer.pal(7,'RdYlGn')
mapCountryData(sPDF,nameColumnToPlot="value",colourPalette=colourPalette)

这幅图背后的原因是,法国之后的下一个值是英国加上你有10个国家,你将它们分为7个类别,这使得法国和英国处于同一颜色类别。默认情况下,mapCountryData采用7类进行打印

以下由您的代码编制的图表

尽量只提供类别。试试下面

colourPalette <- brewer.pal(nrow(dF),'RdYlGn')
mapCountryData(sPDF,nameColumnToPlot="value",colourPalette=colourPalette,numCats=nrow(dF))
产出将是
您的问题是因为您正在使用mapCountryData的默认catMethod,即“分位数”。如果您将catMethod设置为“fixedWidth”,我认为您将得到更接近所需的结果

mapCountryData(sPDF,nameColumnToPlot="value",colourPalette=colourPalette,catMethod='fixedWidth')
或者,您可以使用例如catMethod=c(0,20,40,60,80100)指定类别分隔符


colorplete示例不可复制。@Pascal-发生这种情况是因为在创建数据帧时添加了一些额外的空白。。。它在
joinCountryData2Map
中不匹配。从dF=语句中删除空白。我希望根据值本身而不是类别绘制颜色。我想要根据“值”参数的连续颜色渐变。因此,法国应显示为红色,其他所有国家应显示为不同的绿色。是否无法使用本页所示的连续颜色渐变比例(并避免分类比例):。我以为您要使用rworldmap软件包。。。如果你想用ggplot制作地图,那么你可以使用ggmap。我必须编辑上面的评论。但问题仍然是,在rworldmap中是否可能有连续的颜色渐变比例?颜色是连续的唯一问题是法国是离群值,这给人一种颜色不连续的错觉。。你只想要红色的法国和绿色的法国。。我补充说的是哪一种情况?首先,祝贺你们生产了这么好的软件。关于这个问题,我正在寻找您的第一个解决方案,它可以在任何数据上自动生成连续比例。如果包含术语“连续”或“梯度”(而不是“固定宽度”),则很容易理解。我想在连续数据上使用这个红黄绿方案。还有什么办法能让它更有效吗?@rnso谢谢!你说得对,我可以说得更清楚,只是需要找时间。没有连续选项,但可以增加
numCats
以获得类似的效果<代码>mapCountryData(sPDF,nameColumnToPlot=“value”,colorplate=colorplate,catMethod='fixedWidth',numCats=100)
library(fields)
colourPalette = two.colors(n=max(dF$value)-min(dF$value)+1, start="red", middle='yellow', end="dark green", alpha=1.0)
colourPalette = colourPalette[dF$value - min(dF$value) + 1]
mapCountryData(sPDF,nameColumnToPlot="value",colourPalette=colourPalette, numCats=nrow(dF))
mapCountryData(sPDF,nameColumnToPlot="value",colourPalette=colourPalette,catMethod='fixedWidth')
colourPalette <- brewer.pal(5,'RdYlGn')
mapCountryData(sPDF,nameColumnToPlot="value",colourPalette=colourPalette,catMethod=c(0,20,40,60,80,100))
mapParams <- mapCountryData(sPDF, nameColumnToPlot="value", colourPalette=colourPalette, catMethod=c(0,20,40,60,80,100), addLegend=FALSE)

do.call( addMapLegend, c( mapParams
                          , legendLabels="all"
                          , legendWidth=0.5 ))