Я почти уверен, что это легко сделать, но я не могу найти правильный способ запросить этот вопрос в Google или стеке, так что вот мы:
У меня есть сюжет, сделанный вggplot2, который использует geom_jitter()
, эффективно создавая одну строку для каждого элемента в факторе и выводя на график его значения.Я хотел бы добавить дополнительный geom_violin()
к графику, но простое добавление дополнительной функции geom_
к коду графика возвращает два слоя: jitter
и violin
, один поверх другого (как обычно,ожидается).
РЕДАКТИРОВАТЬ:
Вот как выглядит график: Как я могу иметь violin
в качестве отдельной строки, не генерируявторой сюжет?Побочный квест: как я могу чередовать геомы jitter
и violin
?(то есть строка джиттера элемента A, за которой следует строка скрипки элемента A, а затем строка джиттера элемента B, за которой следует строка скрипки элемента B)
Это минимально необходимый код для его создания (без всех украшений theme()
):
P1 <- ggplot(data=TEST_STACK_SUB, aes(x=E, y=C, col=A)) +
theme(... , aspect.ratio=0.3) +
geom_point(position = position_jitter(w = 0.30, h = 0), alpha=0.2, size=0.5) +
geom_violin(data=TEST_STACK_SUB, mapping=aes(x=E, y=C), position="dodge") +
scale_x_discrete() +
scale_y_continuous(limits=c(0,1), breaks=seq(0,1,0.1),
labels=c(seq(0,1,0.1))) +
scale_color_gradient2(breaks=seq(0,100,20),
limits=c(0,100),
low="green3",
high="darkorchid4",
midpoint=50,
name="") +
coord_flip()
options(repr.plot.width=8, repr.plot.height=2)
plot(P1)
Вот подмножество данных для его генерации (на ваше усмотрение): data