Создание тепловой карты с помощью ggplot - PullRequest
0 голосов
/ 23 апреля 2020

Я работаю с R, и я хотел бы создать тепловую карту, используя пакет Евростата, и я борюсь с палитрой. Я знаю, что в Интернете есть несколько примеров, но я не смог исправить эту ошибку.

Я пробовал несколько видов палитры, библиотеки, однако каждый из них выдавал некоторые ошибки (ниже относится к библиотеке Viridis ).

ERROR: Error: Discrete value supplied to continuous scale

Я хотел бы использовать палитру / библиотеку с синим цветом (темно-синий - светло-синий / желтый). Не могли бы вы помочь мне?

PS. Я новичок ie, приветствуются любые советы!

library(eurostat)
library(dplyr)
library(ggplot2)
library(stringr)


data = get_eurostat("edat_lfse_03", time_format = "num")

data_map <- data%>%
  filter(age == 'Y25-34' & time == '2019' & isced11 == 'ED5-8' & geo != 'TR')%>%
  group_by(geo)%>%
  summarise(Values=mean(values, na.rm=TRUE))

mapdata <- get_eurostat_geospatial(nuts_level = 0, resolution='60',
                                   year=2016, 
                                   output_class = 'df') %>%
  right_join(data_map, by='geo')%>%
  mutate(cat = cut_to_classes(Values, n=7, decimals = 1))

map <- ggplot(mapdata, aes(x=long,y=lat,group=group)) + 
  #scale_fill_manual("NOTHING WORKED HERE")+
  xlab('longitude')+  ylab('latitude') +
  geom_polygon(aes(fill=mapdata$cat),color="white", size=.1)+ 
  xlim(c(-12,44)) + ylim(c(35,70)) + scale_fill_viridis_c()
map

1 Ответ

0 голосов
/ 23 апреля 2020

вместо

xlim(c(-12,44)) + ylim(c(35,70)) + scale_fill_viridis_c()

используйте

scale_x_continuous(limits=c(-12, 44)) + scale_y_continuous(limits=c(35, 70)) + scale_fill_viridis_d()

для преобразования дискретного значения в непрерывное. Это должно работать. Это то, что вы хотите сделать?

...