我想为每列制作一个直方图。每个列都有三个值(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"))
答案 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)
以下是结果图。我保留了它的基本知识,但是您当然可以通过添加更多层使其变得漂亮。