难以在ggplot中设置地图的颜色比例.我需要灰度.非常感谢我出错的想法.我还想知道是否有更有效的方法将颜色变量变为ggplot(即将其附加到'强化'数据)?
library(ggplot2)
states <- map_data("state")
var <- data.frame(table(states$region)) # using rows as a dummy variable
states$variable <- var$Freq[match(states$region,var$Var1)]
map <- ggplot(states, aes(x=long, y=lat)) +
geom_polygon(aes(group=group, fill=variable), col=NA,lwd=0)
map + scale_colour_gradient(low='white', high='grey20')
map + scale_colour_grey()
Run Code Online (Sandbox Code Playgroud)

Pau*_*tra 11
你需要使用scale_fill_*而不是scale_color_*.对于多边形几何形状,多边形的填充颜色与fill美学相关联,而不是color美学.通常,用于改变特定比例的细节的函数是scale_aesthetic_name _type_of_scale,例如scale_fill_gradient.
这段代码对我有用。
library(ggplot2)
states <- map_data("state")
var <- data.frame(table(states$region))
states$variable <- var$Freq[match(states$region,var$Var1)]
map <- ggplot(states, aes(x=long, y=lat,fill=variable,group=group)) + geom_polygon()
map + scale_fill_gradient(low='white', high='grey20')
Run Code Online (Sandbox Code Playgroud)
处理离散变量问题的一个简单方法是使用调色板函数创建“假”连续调色板。请参阅下面的示例。
定义调色板,这里我使用黑色和白色的十六进制代码,但您可以使用任何颜色
gs.pal <- colorRampPalette(c("#FFFFFF","#000000"),bias=.1,space="rgb")
Run Code Online (Sandbox Code Playgroud)
现在创建一些假数据
x <- rnorm(100)
dat <- data.frame(cbind(x))
dat$fac <- as.factor(sort(rep(1:5,20)))
dat$y <- x * as.numeric(dat$fac)
Run Code Online (Sandbox Code Playgroud)
接下来在本例中使用 ggplot 函数scale_*类型绘制它_manual,因为您将使用它的颜色scale_colour_manual,但您将使用上面的颜色scale_fill_manual
ggplot(dat,aes(x=x,y=y,colour=fac))+geom_point()+scale_colour_manual(values=gs.pal(5))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21879 次 |
| 最近记录: |