如何在 ggplot 等值线图中将 NA 颜色从灰色更改为白色?

Posted

技术标签:

【中文标题】如何在 ggplot 等值线图中将 NA 颜色从灰色更改为白色?【英文标题】:How do I change the NA color from gray to white in a ggplot choropleth map? 【发布时间】:2013-04-19 16:55:49 【问题描述】:

我正在尝试创建一个美国的等值线地图,其默认颜色从灰色变为白色。

我有 48 个状态中的 18 个的记录,并且代码可以按值着色,但对于我没有记录的那些状态,状态是灰色的。我希望它们是白色的。

如何更改颜色?

library(maps)
library(plyr)
library(ggplot2)
records1<-read.csv('E:/My Documents/records_by_state.csv')
records<-data.frame(state=tolower(rownames(records1)), records1)
head(records)
all_states<-map_data("state")
head(all_states)
record_map<-merge(all_states, records, by.x="region", by.y="state.name")
record_map<-arrange(record_map, group, order)
head(record_map)

p<- ggplot()

p<- p + geom_polygon(data=record_map, aes(x=long, y=lat, group=group,    fill=record_map$Records), colour="black"
         )+ scale_fill_continuous(low="thistle2", high="darkred", guide="colorbar")
P1 <- p + theme_bw() +labs(fill= "Records by State"
                    , title= "By State", x="", y="")
P1 + scale_y_continuous(breaks=c()) + scale_x_continuous(breaks=c()) +  theme(panel.border= element_blank())

【问题讨论】:

【参考方案1】:

您可以通过更改scale_fill_continuos() 中的参数na.value 来更改NA 值(没有数据的状态)的颜色。

+scale_fill_continuous(low="thistle2", high="darkred", 
                       guide="colorbar",na.value="white")

【讨论】:

仅供参考:na.value="transparent" 将完全删除它们 我想知道如果你只使用一种颜色,是否有办法设置“透明”...... @BrianD 你刚刚救了我的命! 我也可以更改图例中的名称吗? labels(c("NA"="none") 没有任何作用

以上是关于如何在 ggplot 等值线图中将 NA 颜色从灰色更改为白色?的主要内容,如果未能解决你的问题,请参考以下文章

在 ggplot 中使用 NA 值创建连续折线图并添加辅助 y 轴

Altair 等值线图,基于折线图选择的颜色高亮

ggplot 分组箱线图中的平均值 (R)

GGPLOT箱线图按颜色细分,箱线图中间有平均值

怎样用ArcGis中的Kriging插值法绘制等值线图

等值线图以及色斑图实现方式综述