У меня есть вопрос, касающийся зацикливания и прорисовки. Я работаю над набором биологических данных с названием 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