Как убрать научную нотацию из этой легенды ggplot - PullRequest
1 голос
/ 19 октября 2019

Я использовал этот код для создания диапазонов для моей легенды: R ggplot2 - пользовательские цветовые диапазоны и цвета geom_point

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

structure(list(value = c(1991, 1991, 1991, 1991, 1991, 1991, 
1991, 1991, 1991, 1991, 1991, 1991, 1991, 1991, 1991, 1991, 1991, 
1991, 1991, 1991), iso2c = c("AO", "AO", "AO", "AO", "AO", "AO", 
"AO", "AO", "AO", "AO", "AO", "AO", "AO", "AO", "AO", "AO", "AO", 
"AO", "AO", "AO"), mapname = c("Angola", "Angola", "Angola", 
"Angola", "Angola", "Angola", "Angola", "Angola", "Angola", "Angola", 
"Angola", "Angola", "Angola", "Angola", "Angola", "Angola", "Angola", 
"Angola", "Angola", "Angola"), long = c(23.9665031433105, 23.98828125, 
24.0100574493408, 24.0255870819092, 24.0414066314697, 24.0466804504395, 
24.029296875, 24.0146484375, 23.98681640625, 23.9709968566895, 
23.98388671875, 23.9734382629395, 23.9623050689697, 23.9588871002197, 
23.9964847564697, 23.9913101196289, 23.9447269439697, 23.9093761444092, 
23.8865242004395, 23.8824214935303), lat = c(-10.8717775344849, 
-11.0028324127197, -11.1847658157349, -11.3156251907349, -11.3741207122803, 
-11.4053707122803, -11.4391593933105, -11.5176753997803, -11.5872068405151, 
-11.6358404159546, -11.7249994277954, -11.8529300689697, -11.9878902435303, 
-12.1177730560303, -12.3506832122803, -12.4221677780151, -12.5437498092651, 
-12.6361322402954, -12.7432613372803, -12.7990236282349), group = c(3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3), order = 423:442, 
    subregion = c(NA_character_, NA_character_, NA_character_, 
    NA_character_, NA_character_, NA_character_, NA_character_, 
    NA_character_, NA_character_, NA_character_, NA_character_, 
    NA_character_, NA_character_, NA_character_, NA_character_, 
    NA_character_, NA_character_, NA_character_, NA_character_, 
    NA_character_)), row.names = c(NA, 20L), class = "data.frame")

Вот код, который я использую

break_year_map_data_nona %>% 
    ggplot(aes(long, lat, group = group, fill = cut(value, c(1961, 1980, 1990, 2000, 2010, 2016)))) +
    geom_polygon() +
    coord_map(xlim=c(-180,180)) +
    theme_void() +
    labs(title = "", fill = "Break year")

Но легенды получают научную запись в качестве вывода:

Map with scientific notation

Я попытался следовать приведенным здесь советам Как изменить научную запись на ярлыках легенд в ggplot2

И так как у меня есть дискретные данные, я попробовал следующий код:

break_year_map_data_nona %>% 
    ggplot(aes(long, lat, group = group, fill = cut(value, c(1961, 1980, 1990, 2000, 2010, 2016)))) +
    geom_polygon() +
    scale_fill_discrete(labels = comma) +
    coord_map(xlim=c(-180,180)) +
    theme_void() +
    labs(title = "", fill = "Break year")

Но я получаю сообщение об ошибке (я также пытался непрерывно, но он также не работает)

Error in UseMethod("round_any") : 
  no applicable method for 'round_any' applied to an object of class "character"

Чтоя могу сделать, чтобы заставить это работать?

1 Ответ

2 голосов
/ 19 октября 2019

Я не смог получить ваши данные и попробуйте это, чтобы увидеть, работает ли он:

break_year_map_data_nona %>% 
  mutate(
    break_year = cut(value, breaks = c(1961, 1980, 1990, 2000, 2010, 2016), 
                                labels = c("1960-", "1980-", "1990-", "2000-", "2010-2016"))
  ) %>%
  ggplot(aes(long, lat, group = group, fill = break_year )) +
  geom_polygon() +
  coord_map(xlim=c(-180,180)) +
  theme_void() +
  labs(title = "", fill = "Break year")
...