Чтобы создать воспроизводимый пример, мне нужно было бы предоставить данные шейп-файла и т. Д., И это было бы громоздким для вас (загрузка данных и т. Д.), Так что попытка заключается в том, чтобы предоставить последнюю часть, и это касается ggplot
Цветовая палитра с ggplot
Вот пример кода:
cols <- colorRampPalette(c("darkgreen","yellow","red"), space = "rgb")
myPal <- cols(11)
ggplot(data=df, aes(x=long, y=lat, group=group)) +
geom_polygon(aes(fill = measure))+ # draw polygons
coord_equal() +
scale_x_continuous(breaks = as.numeric(levels(factor(df$measure))))+
scale_fill_manual(values = myPal)+
labs(title="mesure level", x="", y="")+
theme(axis.text=element_blank(),axis.ticks=element_blank())
в принципе, я пытаюсь применить свои собственные цвета для заполнения областей, определив диапазон цветов. Выше не работает, как он производит ошибку:
Error: Continuous value supplied to discrete scale
EDIT: Это работает, однако:
ggplot(data=df, aes(x=long, y=lat, group=group)) +
geom_polygon(aes(fill = measure))+ # draw polygons
coord_equal() +
geom_path(color="grey", linestyle=2)+
scale_fill_gradient(low = "#ffffcc", high = "#ff4444",
space = "Lab", na.value = "grey50",
guide = "colourbar")+
labs(title="measure level", x="", y="")+
theme(axis.text=element_blank(),axis.ticks=element_blank())
EDIT2: Переменная measure
является числовым(), а вот как вставить меру:
df$measure <- as.numeric(round(runif(nrow(df), 0, 1), 1))
dput
огромна, так вот ул()
str(df)
'data.frame': 344858 obs. of 8 variables:
$ long : num 18 18 18 18 18 ...
$ lat : num 48.7 48.7 48.7 48.7 48.7 ...
$ order : int 1 2 3 4 5 6 7 8 9 10 ...
$ hole : logi FALSE FALSE FALSE FALSE FALSE FALSE ...
$ piece : Factor w/ 2 levels "1","2": 1 1 1 1 1 1 1 1 1 1 ...
$ group : Factor w/ 80 levels "0.1","1.1","2.1",..: 1 1 1 1 1 1 1 1 1 1 ...
$ id : chr "0" "0" "0" "0" ...
$ measure: num 0.7 0.4 0.8 0.8 0.8 0.2 0.8 0.5 0.2 0 ...
сообщение об ошибке объясняет совершенно ясно, что происходит не так: одна из переменных является метрономы ctor, в то время как ggplot ожидает непрерывную переменную. В вашем случае это, вероятно, переменная 'measure'. – Jaap
Яап - это место, и вы могли бы предоставить 'str (df)' (или 'dyplyr :: glimpse (df)') без причин, вызывающих слишком сильную тоску. Для дальнейшего использования функции в R, которые читают шейп-файлы ('readOGR' и др.), Имеют тенденцию создавать факторы из всех строк в разделе' @ data' объекта 'Spatial ... '. – hrbrmstr
Я обновил вопрос и поблагодарил вас за то, что вы изучали это и за терпение. – Maximilian