首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ggplot2中更改复杂填充的颜色?

如何在ggplot2中更改复杂填充的颜色?
EN

Stack Overflow用户
提问于 2012-12-08 01:36:19
回答 1查看 3.3K关注 0票数 4

我正在绘制一张地图,上面有疟疾寄生虫抗药的不同研究地点。研究地点的点的大小与采样的疟疾寄生虫的数量有关,并且点的填充是耐药疟疾寄生虫比例的0到1的梯度。下面的代码显示了下面的映射:

代码语言:javascript
复制
###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)

我尝试使用颜色选项,但不起作用:

代码语言:javascript
复制
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?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-08 02:32:53

正如我在评论中提到的,我认为你对设置和映射美学有一点困惑。

您可以将美学映射到aes()中数据框中的变量。因此,aes(color = var)将颜色美学映射到变量var,您将获得一个图例,以显示颜色如何随var变化。如果将aes()之外的颜色设置为单个值,则只需将所有点设置为单个颜色:color = "red"

我怀疑您感到困惑的原因是,您在aes()中使用了size=Tot437,然后在aes()之外使用了size=sizesize=0.5

最后,要更改调色板,您需要了解scale_color_*函数(以及scale_fill_*, scale_size_*等)。下面是一个简单的示例来帮助您入门:

代码语言:javascript
复制
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])

我是怎么想出那种看起来很疯狂的颜色规格的?仅从scale_fill_continuous的前几行开始,然后查看一下孟塞尔包。

编辑:我完全忽略了你实际上使用的是pch = 21,它基本上是唯一的点形状,而fill美学是有意义的,所以我编辑了一下,删除了我对这一点的评论。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13768184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档