Коробка из двух столбцов в кадре данных

У меня есть фрейм данных (df) с 3 столбцами:

test1   test2    res
500    23        30.75
200    23        31.36
110    26        30.38
105    23        31.57
55     21        33.56
35     21        31.39
27     18        36.89
23     23        35.44 

Я хочу иметь один график для обоих результатов. Я переплавил данные на основе "res" и назвал новый (df_melt) и получил следующее:

res      variable  value
30.75     test1   500    
31.36     test1   200
30.38     test1   110
31.57     test1   105
33.56     test1    55
31.39     test1    35
36.89     test1    27
35.44     test1    23
30.75     test2    23
31.36     test2    23
30.38     test2    26
31.57     test2    23
33.56     test2    21
31.39     test2    21
36.89     test2    18
35.44     test2    23 

Теперь я хочу отобразить данные так, чтобы ось x = res и ось y = значение на основе столбца переменной. Поэтому я бы ожидал двух диаграмм для каждого значения «res», поскольку у меня есть два типа данных в переменной (т.е. test1 и test2).

Я пробовал это:

boxplot(df_melt$value~df_melt$res)

У меня получилось только 8 боксов и непонятно для какого теста??? Как я могу добавить второй тест на график, чтобы я мог сравнить их.

Вся причина, по которой я хочу включить их вместе, чтобы я мог сравнить их ....


person SimpleNEasy    schedule 19.11.2012    source источник


Ответы (1)


Я полагаю, вы ищете гистограмму, поскольку вы не можете создать диаграмму на основе одного значения.

library(ggplot2)

ggplot(df_melt, aes(x = factor(res), y = value, fill = variable)) +
  geom_bar(stat="identity", position="dodge")

введите здесь описание изображения


Обновление: решение с блочной диаграммой, основанное на комментарии OP:

Аналогичный график с несколькими ящичковыми диаграммами разных цветов можно создать с помощью:

ggplot(df_melt, aes(x = factor(res), y = value, fill = variable)) +
  geom_boxplot() +
  scale_fill_manual(values = c("white", "darkgray"))

Обратите внимание, что этот график имеет смысл только в том случае, если у вас есть несколько значений в values для каждой комбинации res и variable.

Цвета коробок будут белыми и темно-серыми. Вы можете изменить цвет с помощью функции scale_fill_manual.

person Sven Hohenstein    schedule 20.11.2012
comment
Да, вы не можете построить график для одного значения. Я изменил данные, чтобы иметь более одного значения для одного значения X. Да, вы правы, ящичковая диаграмма не может быть построена для одного значения. Я изменил данные, чтобы иметь более одного значения для одного значения X. Это работает. Мне просто нужно знать, как контролировать цвет разных результатов. Можно ли использовать другой способ различения двух диаграмм результатов, например затенение, поэтому, когда я печатаю график в черно-белом режиме, я смогу увидеть два разных результата. - person SimpleNEasy; 21.11.2012