R 如何更改ggplot2中复杂填充的颜色?
我正在绘制一张关于疟原虫耐药性的不同研究地点的地图。研究地点的点的大小与抽样的疟原虫数量有关,点的填充为0到1的抗药性疟原虫比例梯度。以下代码显示以下地图:R 如何更改ggplot2中复杂填充的颜色?,r,ggplot2,R,Ggplot2,我正在绘制一张关于疟原虫耐药性的不同研究地点的地图。研究地点的点的大小与抽样的疟原虫数量有关,点的填充为0到1的抗药性疟原虫比例梯度。以下代码显示以下地图: ###GENERATING AFRICA MAP### africa = readOGR("/Users/transfer/Documents/Mapping Files/Africa Countries/Africa_SHP", layer="dissolved") #FIXING THE NON-NODED INTERSECTS#
###GENERATING AFRICA MAP###
africa = readOGR("/Users/transfer/Documents/Mapping Files/Africa Countries/Africa_SHP", layer="dissolved")
#FIXING THE NON-NODED INTERSECTS#
africa = gBuffer(africa, width=0, byid=TRUE)
#CREATING DATA FRAME FOR GGPLOT#
africa.map = fortify(africa, region="ID")
###PLOTTING SPM.437###
#SCALING THE SAMPLE SIZE USING CUBE-ROOT#
size = d.spm.437$Tot437^(1/3)
#PLOTTING#
ggplot(africa.map, aes(x = long, y = lat, group = group)) +
geom_polygon(colour="black", size=0.25, fill="white", aes(group=group)) +
geom_point(data = d.spm.437, aes(x = long, y = lat, fill=Frc437, group=NULL, size=Tot437),
size=size, shape=21, colour="black", size=0.5)
我尝试使用颜色选项,但不起作用:
ggplot(africa.map, aes(x = long, y = lat, group = group)) +
geom_polygon(colour="black", size=0.25, fill="white", aes(group=group)) +
geom_point(data = d.spm.437, aes(x = long, y = lat, colour="red", fill=Frc437, group=NULL, size=Tot437),
size=size, shape=21, colour="black", size=0.5)
有人知道如何让填充颜色显示红色比例、浅色为0、深色为1吗?正如我在评论中提到的,我认为您对设置与贴图美学有点困惑 您可以将美学映射到
aes()
中数据框中的变量。因此,aes(color=var)
将颜色美学映射到变量var,您会得到一个图例来显示颜色如何随变量而变化。如果您将aes()
之外的颜色设置为单个值,那么您只需将所有点设置为单个颜色:color=“red”
我怀疑您感到困惑的原因是,您在aes()
内部有size=Tot437
,然后在aes()
外部有size=size
和size=0.5
最后,要更改调色板,您需要了解scale\u color\u*
函数(以及scale\u fill\u*、scale\u size\u*
等)。下面是一个简单的示例,让您开始学习:
dat <- data.frame(x = rnorm(50),
y = rnorm(50),
f = runif(50))
library(ggplot2)
library(munsell)
cl <- mnsl(c("5R 2/4", "5R 7/10"))
ggplot(dat,aes(x,y,fill = f)) +
geom_point(size = 5,shape = 21) +
scale_fill_gradient(low = cl[1],high = cl[2])
dat,除了当pch=21
时需要fill
之外(更令人困惑的是)!e、 g.看@Benbolker Good catch,我在问题中完全忽略了这一点。一旦我不再使用手机,我就会编辑。