2015-03-19 3 views
9

Я использую ggplot для сопоставления значений данных (фортифицированный) SpatialPolygonsDataFrame, но многие из полигонов имеют значения NA, потому что данных нет.Добавить значение NA в легенду ggplot для непрерывной карты данных

Я использовал na.value = "белый", чтобы отображать недостающие данные правильно, но я хотел бы добавить коробку с белым заливом в легенду (или отдельную легенду) с меткой «нет данных».

library(ggplot2) 

india.df <- read.csv('india.df.csv') 
# (I don't know how to provide this file to make the code reproducible) 

ggplot() + 
geom_polygon(data=india.df, aes(x = long, y = lat, group = group, fill=Area_pct)) + 
scale_fill_gradient(low="orange2", high="darkblue", na.value = "white") + 
geom_path(data=india.df, aes_string(x = x, y = y, group = group), color = "gray", size = 0.25) + 
theme_bw() + 
coord_map() + 
labs(title = "Rice Under Irrigation in Gujarat - 2001", 
    fill = "Area (%)") 

(У меня есть большое изображение, чтобы проиллюстрировать это, но не имеют достаточного количества очков репутации, чтобы разместить его)

Я прочитал this, но мои данные непрерывно (не дискретно), и this , но я не могу понять, как адаптировать «линию» к «fill».

Спасибо за помощь!

+2

Найдено https://github.com/hadley/ggplot2/issues/410 похоже, что мы застряли в обходных решениях ... – animalito

+0

Скорее всего, мы сможем вам помочь, если вы сделайте минимальный воспроизводимый пример, чтобы согласиться с вашим вопросом. Что-то, с чем мы можем работать и использовать, чтобы показать вам, как можно решить вашу проблему. Вы можете посмотреть [это сообщение SO] (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) о том, как сделать отличный воспроизводимый пример в R –

ответ

1

вы можете заменить Nas с 0 с помощью

data[is.na(data)] <- 0 

таким образом ваш NAS будет заменен на ноль и YOUT легенды покажет «0s»

И показать нам изображение, которое вы можете иметь блог и можете вставить ссылку здесь

+0

Это не касается ситуации, описанной ОП, в которой «нет данных» не совпадает с «данные были собраны для этой области на карте, но было 0 случаев» - если это не будет запрос функции для ggplot2 есть возможность показать NA, выбрать, как их маркировать, покрасить и включить в легенду? –

Смежные вопросы