Проблемы с построением l oop в R - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть вопрос, касающийся зацикливания и прорисовки. Я работаю над набором биологических данных с названием plot_bts_nrs. В этом наборе данных есть несколько станций отбора проб "StN0" с координатами "ShootLong" и "ShootLat", для которых я рассчитал 6 индексов разнообразия. Эти индексы разнесения хранятся в виде разных столбцов в одном и том же наборе данных.

Я собираюсь составить 6 графиков: по одному для каждого индекса разнесения. На графике я хочу, чтобы станции отбора проб отображались цветом, в зависимости от значения каждого индекса разнообразия. Я выяснил, как создать отдельный график для каждого индекса разнесения, но мне интересно привести в порядок код, поместив протокол построения в формула для l oop.

Это (неисправный) код Теперь я пришел с:

xlim = c(-0, 5)
ylim = c(51, 53.5)

plot_list = c("N0", "N1", "N2", "sqrt_N1", "log_N1", "relative_N1")

for (index in plot_list) {
  plot = ggplot(data = plot_bts_nrs %>% dplyr::distinct(StNo, .keep_all = T),
                aes(x = ShootLong, y = ShootLat, color = index)) +
    geom_point(alpha = 0.5) +
    geom_polygon(data = europa, aes(x = long, y = lat, group = group), colour = "black", fill = "#b1caa9") +
    theme_bw() +
    theme(plot.title = element_text(hjust = 0.5, size = 16, face = "bold")) +
    ylab("Latitude") + 
    xlab("Longitude") +
    coord_fixed(1.3, xlim = xlim, ylim = ylim) +
    scale_color_gradient(low = "red", high = "green") +
    labs(colour = index) +
    ggtitle(paste0(index, " per station"))
  plot
  ggsave(plot, file = ..., path = ...,
         height = ..., width = ..., units = ...)
}

Если я запустил этот код, я получаю сообщение об ошибке

Error: Discrete value supplied to continuous scale
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...