Без фактических данных трудно показать вам точный код, который вам нужно использовать, но, взглянув на этот png
, я бы посоветовал вам попробовать что-то из следующего:
library(reshape2)
library(ggplot2)
df <- melt(your_data)
ggplot(df, aes(x=variable, y=value)) + geom_boxplot()
Этот код, вероятно, нуждается в некоторой корректировке. Если это не работает и изменения не очевидны, опубликуйте несколько примеров данных таким образом, чтобы нам было легко их использовать. Данные со снимка экрана подразумевают, что нам нужно вручную копировать и вставлять каждое число, что мало кто захочет делать.
Чтобы прояснить общую процедуру: melt
«складывает» все ваши столбцы друг над другом и добавляет переменную с именем variable
, которая ссылается на старое имя столбца. Вы можете передать это ggplot
и сказать, что разные значения variable
должны быть на оси x
, чего вы и хотите. Например, взгляните на women
:
head(women)
height weight
1 58 115
2 59 117
3 60 120
4 61 123
5 62 126
6 63 129
str(women)
'data.frame': 15 obs. of 2 variables:
$ height: num 58 59 60 61 62 63 64 65 66 67 ...
$ weight: num 115 117 120 123 126 129 132 135 139 142 ...
Вы видите, что women
— это кадр данных с 15 наблюдениями и двумя столбцами, height
и weight
.
Теперь давайте melt
их:
df <- melt(women)
head(df)
variable value
1 height 58
2 height 59
3 height 60
4 height 61
5 height 62
6 height 63
str(df)
'data.frame': 30 obs. of 2 variables:
$ variable: Factor w/ 2 levels "height","weight": 1 1 1 1 1 1 1 1 1 1 ...
$ value : num 58 59 60 61 62 63 64 65 66 67 ...
Теперь вы видите, что в нем 30 наблюдений и два столбца: variable
и value
. variable
определяет старые столбцы.
Давайте передадим это ggplot
:
ggplot(df, aes(x=variable, y=value)) + geom_boxplot()
дает:
Здесь у вас есть диаграммы для обоих столбцов в исходном наборе данных women
.
04.03.2016