usmaps R:使用 ggplot2 设置 bins 和手动颜色
usmaps R: Use ggplot2 to set bins and manually color
我正在使用 R 中的 usmaps() 包创建美国地图。我的数据设置如下:
Ces_State_Only:
State
1990
Alabama
0.2
Alaska
0.31
Arizona
0.40
我想创建一个叶绿素图。我想将我的数据分为以下几类:0-0.2、0.2-0.25、0.25-0.3、0.3-0.33、0.33-36、>36。
我的代码是:
plot_usmap(data = Ces_State_only, values = "1990") + scale_colour_gradientn(colours = "Blues", breaks = c(0,.2, .25, 0.3, 0.33, 0.36, 1),limits = c(0, 100))
此代码有效,但它没有对我的数据进行分类。
我还尝试在映射之前对数据进行分箱:
Ces_State_only$Ninety_bin <- cut(Ces_State_only$`1990`,breaks = c(0,0.2, 0.25, 0.3, 0.33, 0.36,1))
plot_usmap(data = Ces_State_only, values = "Ninety_bin") + scale_fill_brewer(palette="Blues",
aesthetics = "fill",
na.value = "grey50")+ theme(legend.position = "right")
但是,这只会在美国地图上创建三种不同的颜色(对于以下 bin:0-0.2、0.2-0.25 和 0.25-0.3)。
有什么建议或想法吗?
提前致谢!
问题是默认情况下使用的因子水平会下降。您可以通过在 scale_fill_brewer
:
中设置 drop=FALSE
来防止这种情况
library(usmap)
library(ggplot2)
plot_usmap(data = Ces_State_only, values = "Ninety_bin") +
scale_fill_brewer(
palette = "Blues",
aesthetics = "fill",
na.value = "grey50",
drop = FALSE
) +
theme(legend.position = "right")
我正在使用 R 中的 usmaps() 包创建美国地图。我的数据设置如下:
Ces_State_Only:
State | 1990 |
---|---|
Alabama | 0.2 |
Alaska | 0.31 |
Arizona | 0.40 |
我想创建一个叶绿素图。我想将我的数据分为以下几类:0-0.2、0.2-0.25、0.25-0.3、0.3-0.33、0.33-36、>36。
我的代码是:
plot_usmap(data = Ces_State_only, values = "1990") + scale_colour_gradientn(colours = "Blues", breaks = c(0,.2, .25, 0.3, 0.33, 0.36, 1),limits = c(0, 100))
此代码有效,但它没有对我的数据进行分类。
我还尝试在映射之前对数据进行分箱:
Ces_State_only$Ninety_bin <- cut(Ces_State_only$`1990`,breaks = c(0,0.2, 0.25, 0.3, 0.33, 0.36,1))
plot_usmap(data = Ces_State_only, values = "Ninety_bin") + scale_fill_brewer(palette="Blues",
aesthetics = "fill",
na.value = "grey50")+ theme(legend.position = "right")
但是,这只会在美国地图上创建三种不同的颜色(对于以下 bin:0-0.2、0.2-0.25 和 0.25-0.3)。
有什么建议或想法吗?
提前致谢!
问题是默认情况下使用的因子水平会下降。您可以通过在 scale_fill_brewer
:
drop=FALSE
来防止这种情况
library(usmap)
library(ggplot2)
plot_usmap(data = Ces_State_only, values = "Ninety_bin") +
scale_fill_brewer(
palette = "Blues",
aesthetics = "fill",
na.value = "grey50",
drop = FALSE
) +
theme(legend.position = "right")