Мне очень нравится, как ggplot2::geom_dotplot()
может красиво складывать точки в середину категории, но я не могу совмещать это с цветом заливки.
Давайте рассмотрим пример:
# test data
tmpData <- data.frame(x=c(rep('x', 3),rep('y', 3)), y=c(1,1,2,1,2,2), fill=rep(c('A', 'B', 'B'), 2))
# Plot without fill color
ggplot(tmpData, aes(x=x, y=y)) +
geom_dotplot(binaxis = "y", stackdir = "center", dotsize=4)
Результат на этом рисунке:
Но когда я добавляю аргумент fill:
ggplot(tmpData, aes(x=x, y=y, fill=fill)) +
geom_dotplot(binaxis = "y", stackdir = "center", dotsize=4)
Заполнение, похоже, перезаписывает группировку, сделанную на "x", в результате чего две точки (x, 1) (x, 1) будут свернуты. Я хотел бы, чтобы они имели разные цвета.
Когда я пытаюсь указать группу, цвет заливки игнорируется:
ggplot(tmpData, aes(x=x, y=y, group=x, fill=fill)) +
geom_dotplot(binaxis = "y", stackdir = "center", dotsize=4)
Коллапс, похоже, можно избежать, включив группы стека:
ggplot(tmpData, aes(x=x, y=y, fill=fill)) +
geom_dotplot(binaxis = "y", stackgroups=TRUE, stackdir = "center", dotsize=4)
Но затем я теряю центрирование данных на "x" и "y", которые находятся на других 3 графиках.
Есть ли способ использовать geom_dotplot()
для обеих групп и заполнить?