Несколько гистограмм на 1 странице (без длинных данных) - PullRequest
0 голосов
/ 14 января 2019

Я хочу сделать гистограмму для каждого столбца. Каждый столбец имеет три значения (Phase_1_Mean, Phase_2_Mean и Phase_3_Mean)

Вывод должен быть: 12 гистограмм (потому что у нас есть 12 строк), и на гистограмме 3 значения показаны в столбце (ось Y = значение, ось X = Phase_1_Mean, Phase_2_Mean и Phase_3_Mean).

Застрял : Когда я ищу в Интернете, почти все создают "длинный" фрейм данных. Это не поможет в этом примере (потому что мы сгенерируем значение «значение». Но я хочу, чтобы три «строки» были разделены.

Внизу вы можете найти мои данные. Оценил!

Я попробовал это ( Как мне сгенерировать гистограмму для каждого столбца моей таблицы? ), но вот проблема «длинной таблицы», после этого я попробовал Несколько графиков на 1 странице. в R это решило, как мы можем построить несколько графиков на 1 странице.

dput(Plots1)
structure(list(`0-0.5` = c(26.952381, 5.455598, 28.32947), `0.5-1` = 
c(29.798635, 
25.972696, 32.87372), `1-1.5` = c(32.922764, 41.95935, 41.73577
), `1.5-2` = c(31.844156, 69.883117, 52.25974), `2-2.5` = c(52.931034, 
128.672414, 55.65517), `2.5-3` = c(40.7, 110.1, 63.1), `3-3.5` =         
c(73.466667, 
199.533333, 70.93333), `3.5-4` = c(38.428571, 258.571429, 95), 
`4-4.5` = c(47.6, 166.5, 233.4), `4.5- 5` = c(60.846154, 
371.730769, 74.61538), `5-5.5` = c(7.333333, 499.833333, 
51), `5.5-6` = c(51.6, 325.4, 82.4), `6-6.5` = c(69, 411.5, 
134)), class = "data.frame", .Names = c("0-0.5", "0.5-1", 
"1-1.5", "1.5-2", "2-2.5", "2.5-3", "3-3.5", "3.5-4", "4-4.5", 
"4.5- 5", "5-5.5", "5.5-6", "6-6.5"), row.names = c("Phase_1_Mean", 
"Phase_2_Mean", "Phase_3_Mean"))

Нечто, показанное в этом примере (у меня это не сработало, потому что это Python) https://www.google.com/search?rlz=1C1GCEA_enNL765NL765&biw=1366&bih=626&tbm=isch&sa=1&ei=Yqc8XOjMLZDUwQLp9KuYCA&q=multiple+histograms+r&oq=multiple+histograms+r&gs_l=img.3..0i19.4028.7585..7742...1.0..1.412.3355.0j19j1j0j1......0....1..gws-wiz-img.......0j0i67j0i30j0i5i30i19j0i8i30i19j0i5i30j0i8i30j0i30i19.j-1kDXNKZhI#imgrc=L0Lvbn1rplYaEM:

1 Ответ

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

Я думаю, вам нужно изменить форму, чтобы сделать эту работу, но я не понимаю, почему это проблема. Я думаю, что этот код достигает того, что вы хотите. Обратите внимание, что имеется 13 графиков, поскольку в размещенном вами кадре данных имеется 13 (а не 12) столбцов.

# Load libraries
library(reshape2)
library(ggplot2)

Plots1$ID <- rownames(Plots1) # Add an ID variable
Plots2 <- melt(Plots1) # melt to long format
ggplot(Plots2, aes(y = value, x = ID)) + geom_bar(stat = "identity") + facet_wrap(~variable)

Ниже приведен сюжет. Я оставил это базовым, но, конечно, вы можете сделать это красиво, добавив дополнительные слои.

enter image description here

...