Как сделать половину вискера в линейном графике ggplot2? - PullRequest
0 голосов
/ 20 апреля 2020

У меня очень медленный прогресс в R, но теперь я могу кое-что сделать.
Прямо сейчас я строю графики влияния 4 обработок на рост растений на одном графике. Как вы видите, панели ошибок перекрываются, поэтому я сделал их разными цветами. Я думаю, что для того, чтобы сделать график более четким, лучше использовать нижние панели ошибок в качестве «наполовину слабых» для нижних 2 строк, а верхние полосы ошибок для верхних двух строк (как у меня сейчас), см. Прилагаемое изображение для справки
see attached image

Это выполнимо при настройке моего сценария сейчас?
Вот часть моего сценария, у меня есть намного больше, но здесь я указываю сюжет само по себе my plot (без учета эстетики и прочего), спасибо заранее:

"soda1" - это мой измененный фрейм данных, настройка понятна, "sdtv" - мои стандартные отклонения для каждого момента времени / обработки, «oppervlak» - это моя переменная y, а «Measurement Date» - моя переменная x. «Идентификатор лотка» - это процедура, поэтому моя переменная группировки.

p <- ggplot(soda1, aes(x=reorder(`Measuring Date`, oppervlak), y=`oppervlak`, group=`Tray ID`, fill=`Tray ID`, colour = `Tray ID` )) + 
 scale_fill_brewer(palette = "Spectral") + 
 geom_errorbar(data=soda1, mapping=aes(ymin=oppervlak, ymax=oppervlak+sdtv, group=`Tray ID`), width=0.1) + 
 geom_line(aes(linetype=`Tray ID`)) + 
 geom_point(mapping=aes(x=`Measuring Date`, y=oppervlak, shape=`Tray ID`)) 

print(p)

1 Ответ

0 голосов
/ 20 апреля 2020

Отображение только одной стороны панелей ошибок может скрыть перекрытие в неопределенности между распределением двух или более переменных или измерений. Вместо того, чтобы скрывать это перекрытие, вы могли бы очень легко отрегулировать положение ваших панелей ошибок по горизонтали, добавив position=position_dodge(width=) к вашему вызову к geom_errorbar().

Например:

library(ggplot2)

# some random data with two factors
df <- data.frame(a=rep(1:10, times=2),
                 b=runif(20),
                 treat=as.factor(rep(c(0,1), each=10)),
                 errormax=runif(20),
                 errormin=runif(20))

# plotting both sides of the errorbars, but dodging them horizontally
p <- ggplot(data=df, aes(x=a, y=b, colour=treat)) +
  geom_line() +
  geom_errorbar(data=df, aes(ymin=b-errormin, ymax=b+errormax),
                position=position_dodge(width=0.25))

error_dodge

...