У меня есть график с разделом geom_area (), который показывает, активно событие или нет на определенном этапе моделирования (спасибо сообществу за то, что помогли мне с этим!).
Это хорошо работает, когда я показываю только один прогон симуляции, однако мне нужно иметь возможность показывать более одного прогона за раз, чтобы увидеть любые различия между временем этого события в разных прогонах.
Я установил заливку geom_area () так, чтобы она соответствовала номеру прогона, а позицию - в position_dodge (0), чтобы иметь возможность перекрывать области так, чтобы чем гуще цвет, тем больше прогонов было активным событием в таком случае. Единственная проблема в том, что меня не интересует различение серий, поэтому я хотел бы, чтобы все они были одного цвета. Мне удалось сделать это с помощью небольшого хака, просто сделав палитру с серым 10 раз, однако это не то, что я могу сделать вручную, так как скоро у меня будут графики с сотнями прогонов.
Как Могу ли я сделать все факторы одного цвета, независимо от их количества? Или, если есть лучшее решение для отображения графика, подобного приведенному ниже, что это?
Включая график, которым я управлял до сих пор (это именно то, что мне нужно, только масштабируемое) и код, который я использовал для сделать это:
ggplot(df,aes(x = step, y = count)) +
geom_area(data = event, aes(x = step, y = pop_size * event, fill = as.factor(run_num)),
inherit.aes = FALSE, position = position_dodge(0), alpha = 0.2, show.legend = FALSE) +
geom_point(aes(color = breed), alpha = 0.7, size = 1) +
scale_color_brewer(palette = "Set3") +
# horrible hack incoming
scale_fill_manual(values = c("lightgrey","lightgrey","lightgrey","lightgrey","lightgrey",
"lightgrey","lightgrey","lightgrey","lightgrey","lightgrey")) +
coord_cartesian(ylim = c(0, pop_size))