ggplot: добавление новых данных в существующий сгруппированный блок-график - PullRequest
0 голосов
/ 05 ноября 2018

Я создал сгруппированный боксплот с помощью ggplot2. Теперь я хочу добавить дополнительные данные к существующему графику следующим образом: для каждого месяца у меня есть одно «Оптимальное» значение, которое должно отображаться в виде точки, и эти точки должны быть соединены линией. Это желаемое состояние:

Ggplot with dots

Как я могу добавить эти точки и линии на свой сюжет? Могу ли я случайно положить соединительные линии за коробками?

Вот мое текущее состояние и данные:

  1. Ggplot без точек: Grouped boplot

  2. Фрейм данных: Фрейм данных

R код:

data("MyData")
MyData$Month <- as.factor(MyData$Month)

head(MyData)

MyPlot <- ggplot(MyData, aes(x=Month, y=Note, fill=Treatment)) + 
  geom_boxplot()   
MyPlot

Заранее спасибо!

1 Ответ

0 голосов
/ 05 ноября 2018

Просто добавьте geom, отображающий y, в другую переменную. Ради простоты я переместил некоторые элементы эстетики в geom_boxplot.

MyPlot <- ggplot(MyData, aes(x=Month)) + geom_boxplot(aes(y=Note, fill=Treatment)
MuPlot <- MyPlot + geom_pointline(aes(y=Optimum), colour="green", stroke="black")

Это, однако, не добавит вам очков к легенде, так как ggplot2 не поддерживает несколько кодировок одного масштаба (т. Е. С использованием и обработки, и отдельной переменной для цвета).

Геом geom_pointline из пакета "лимон".

На второй ноте попробуйте это для второй строки:

MuPlot <- MyPlot + geom_pointline(aes(y=Optimum, colour="Optimum"), stroke="black") + scale_colour_manual(values('Optimum'='green'))
...