1页上的多个直方图(无需长数据)

时间:2019-01-14 15:21:21

标签: r ggplot2 histogram visualization

我想为每列制作一个直方图。每个列都有三个值(Phase_1_Mean,Phase_2_Mean和Phase_3_Mean)

输出应为: 12个直方图(因为我们有12行),每个直方图以条形显示3个值(Y轴=值,X轴= Phase_1_Mean,Phase_2_Mean和Phase_3_Mean)。

卡住:当我在互联网上搜索时,几乎每个人都在制作一个“长”数据框。这对本例没有帮助(因为我们将生成一个值“ value”。但是我想将三个“行”分开)。

在底部可以找到我的数据。感激!

我尝试了这个(How do I generate a histogram for each column of my table?),但这是“长表”问题,之后我尝试了Multiple Plots on 1 page in R,解决了我们如何在一页上绘制多个图形的问题。

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 :(得分:2)

我认为您必须重塑才能完成这项工作,但是我不明白为什么这是一个问题。我认为这段代码实现了您想要的。请注意,由于您发布的数据框中有13列(而非12列),因此有13个图。

# 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