Возникли проблемы при правильной настройке ящика с ggplot - PullRequest
0 голосов
/ 05 января 2019

Я пытаюсь настроить boxplot с помощью ggplot. У меня есть три температурных обработки в течение пяти дней, и я хочу создать коробку, где я могу видеть пять дней по оси X с тремя коробками в день, представляющими каждую обработку. Вот ссылка на изображение вывода: https://i.imgur.com/F61TfM5.png

Используя функцию boxplot (), я создал график, почти тот, который мне нужен, но я все еще пытаюсь понять, как я могу это сделать с помощью ggplot.

head () данных, которые я использую:

Tratamiento  Dias TotalLength
  <fct>       <dbl>       <dbl>
1 Control         1         261
2 Control         1         262
3 Control         1         366
4 Control         1         315
5 Control         1         351
6 Control         1         320

Я загрузил данные в https://pastebin.com/raw/ZQk8tfK5

Код для ящика, который показал мне, что я хотел увидеть:

library(RColorBrewer)
TLboxplot <- boxplot(TotalLength ~ Tratamiento + Dias, data= TLmeasure, 
    main = 'Total Length', 
    xlab = "Tratamiento x Dias", ylab = "TL",
    ylim = c(100,700),
    col= brewer.pal(n = 3, name = "Reds"))

Код, который я использовал для ggplot, это не то, что я ищу:

library(ggplot2)
TLggplot <- ggplot(TLmeasure, aes(x=Tratamiento, y=TotalLength, 
fill=Tratamiento)) + 
  labs(title="Total Length", x="Temperatura x Dia", y="TL(µm)") +
  geom_boxplot() + 
  scale_fill_brewer(palette="Reds") +
  theme_classic() +
  theme(legend.position = "top")

Фактическим результатом ggplot является график с 3 ячейками и каждой обработкой по оси X вместо 5 дней и 3 рамок в день. То, что я ищу, это только один график с 15 блоками, по три в день каждой процедуры. Вот ссылка на изображение правильного boxplot с boxplot (): https://imgur.com/EwGD1ES.png

Что касается прямоугольника () прямо там, я думаю, что температура должна быть вложенной в день, чтобы она показала три прямоугольника в одном тике. Я не уверен, что я проясняю это утверждение ...

Это мой первый вопрос здесь. Надеюсь, это достаточно подробно. Кажется, у меня проблемы с изображениями, но я думаю, что URL должен работать.

EDIT: Спасибо за ваш ответ, @r_alanb! Это сработало для меня.

1 Ответ

0 голосов
/ 05 января 2019

Вы были близки.

Вы должны иметь Tratamiento в качестве fill и Dias в качестве коэффициента x:

library(ggplot2)
library(RColorBrewer)

ggplot(TLmeasure, aes(as.factor(Dias), TotalLength, fill = Tratamiento)) +
  geom_boxplot() + 
  # the rest of your code
  labs(title="Total Length", x="Temperatura x Dia", y="TL(µm)") +
  geom_boxplot() + 
  scale_fill_brewer(palette="Reds") +
  theme_classic() +
  theme(legend.position = "top")

Результаты в следующем:

boxplot of time vs. TotalLength by temperature group

...