gpt4 book ai didi

r - 更改 R 中 ggplot geom_polygon 的颜色方案

转载 作者:行者123 更新时间:2023-12-02 09:45:57 25 4
gpt4 key购买 nike

我正在使用 map 库和 ggplot 的 geom_polygon 创建 map 。我只是想将默认的蓝色、红色、紫色配色方案更改为其他颜色。我对 ggplot 非常陌生,所以如果我没有使用正确的数据类型,请原谅。我使用的数据如下所示:

> head(m)
region long lat group order subregion Group.1 debt.to.income.ratio.mean ratio total
17 alabama -87.46201 30.38968 1 1 <NA> alabama 12.4059 20.51282 39
18 alabama -87.48493 30.37249 1 2 <NA> alabama 12.4059 20.51282 39
19 alabama -87.52503 30.37249 1 3 <NA> alabama 12.4059 20.51282 39
20 alabama -87.53076 30.33239 1 4 <NA> alabama 12.4059 20.51282 39
21 alabama -87.57087 30.32665 1 5 <NA> alabama 12.4059 20.51282 39
22 alabama -87.58806 30.32665 1 6 <NA> alabama 12.4059 20.51282 39

> head(v)
Group.1 debt.to.income.ratio.mean ratio region total
alabama alabama 12.40590 20.51282 alabama 39
alaska alaska 11.05333 33.33333 alaska 6
arizona arizona 11.62867 25.55556 arizona 90
arkansas arkansas 11.90300 5.00000 arkansas 20
california california 11.00183 32.59587 california 678
colorado colorado 11.55424 30.43478 colorado 92

代码如下:

library(ggplot2)
library(maps)

states <- map_data("state")
m <- merge(states, v, by="region")
m <- m[order(m$order),]

p<-qplot(long, lat, data=m, group=group, fill=ratio, geom="polygon")

我已经尝试了以下方法和更多方法:

cols <- c("8" = "red","4" = "blue","6" = "darkgreen", "10" = "orange") 
p + scale_colour_manual(values = cols)
p + scale_colour_brewer(palette="Set1")
p + scale_color_manual(values=c("#CC6666", "#9999CC"))

最佳答案

问题是您正在使用色标,但在绘图中使用了填充美学。您可以将 scale_fill_gradient() 用于两种颜色,使用 scale_fill_gradient2() 用于三种颜色:

p + scale_fill_gradient(low = "pink", high = "green") #UGLY COLORS!!!

我遇到了 scale_fill_brewer() 的问题,提示在需要离散变量时提供了连续变量。一个简单的解决方法是使用 cut() 创建离散的垃圾箱,然后将其用作填充美学:

m$breaks <- cut(m$ratio, 5) #Change to number of bins you want

p <- qplot(long, lat, data = m, group = group, fill = breaks, geom = "polygon")
p + scale_fill_brewer(palette = "Blues")

关于r - 更改 R 中 ggplot geom_polygon 的颜色方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5996513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com