我正在绘制具有不同疟疾寄生虫抗药性研究地点的地图。研究地点的大小相对于采集的疟疾寄生虫数量而言,这些点的填充是抗药性疟疾寄生虫比例的0到1的梯度。以下代码显示以下地图:
###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?
答案 0 :(得分:5)
正如我在评论中提到的,我认为你对设置与绘图美学有点混淆。
您将美学映射到aes()
内数据框中的变量。因此,aes(color = var)
将颜色美学映射到变量var,您将获得一个图例,以显示颜色随var的变化情况。如果将{/ 1}}之外的颜色设置为单个值,则只需将所有点设置为单一颜色:aes()
。
我怀疑你感到困惑的原因是你color = "red"
内有size=Tot437
,然后外面 aes()
和size=size
size=0.5
。
最后,要更改调色板,您需要了解aes()
函数(以及scale_color_*
等)。这是一个让你入门的简单例子:
scale_fill_*, scale_size_*
我是如何想出那种疯狂的颜色规格?就在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])
的前几行,然后在munsell包中稍微戳了一下。
编辑:我完全错过了 实际使用的scale_fill_continuous
这基本上是pch = 21
美学有意义的唯一点形状,所以我编辑了删除我对该分数的评论。