[英]creating clustered stacked bar charts from two data frames in R
我對此很掙扎,因為我沒有R的經驗,只是開始玩它。 我將兩個文件從兩個文件加載到R中。兩個表具有相同的結構。 表1如下所示:
SIZE XXX TIME-A XXX TIME-B YYY TIME-D YYY TIME-E
2 ... 59.21 ... 511.11 ... 55.31 ... 52.16
3 ... 54.32 ... 514.31 ... 53.91 ... 56.12
4 ... 5100.88 ... 566.9 ... 52.11 ... 545.73
和表2:
SIZE XXX TIME-A XXX TIME-B YYY TIME-D YYY TIME-E
2 ... 9.21 ... 11.11 ... 5.31 ... 2.16
3 ... 4.32 ... 14.31 ... 3.91 ... 6.12
4 ... 100.88 ... 66.9 ... 2.11 ... 45.73
我想在R中為此創建一個聚集的堆疊圖,以使表1的TIME-A堆疊在表2的TIME-A上,並且TIME-B,TIME-D和TIME-E相同。 然后將這四個堆疊的條根據SIZE列進行聚類。 因此,最終的結果是使3個簇具有每個所述的四個堆疊條形。 現在這似乎是一項艱巨的任務,因為我仍在努力將兩個表的兩列彼此堆疊,而不是對群集部分說任何話。 我不是在尋找答案(盡管我非常感謝:]),但是也許與示例的一些鏈接將有助於解決問題。
最好將數據幀綁定在一起,然后使用ggplot2進行多面繪制:
# create an 'id' variable for dataframe
d1$id <- "d1"
d2$id <- "d2"
# bind them together in one
d <- rbind(d1,d2)
# melt the result into long format
md <- melt(d, id.vars=c("id","SIZE"))
library(ggplot2)
ggplot(md, aes(x=SIZE, y=value, fill=id)) +
geom_bar(stat="identity") +
facet_wrap(~ variable, scales = "free_y", nrow=1)
這使:
使用的數據:
d1 <- structure(list(SIZE = 2:4, TIME.A = c(59.21, 54.32, 5100.88), TIME.B = c(511.11, 514.31, 566.9),
TIME.D = c(55.31, 53.91, 52.11), TIME.E = c(52.16, 56.12, 545.73)),
.Names = c("SIZE", "TIME.A", "TIME.B", "TIME.D", "TIME.E"), class = "data.frame", row.names = c(NA, -3L))
d2 <- structure(list(SIZE = 2:4, TIME.A = c(9.21, 4.32, 100.88), TIME.B = c(11.11, 14.31, 66.9),
TIME.D = c(5.31, 3.91, 2.11), TIME.E = c(2.16, 6.12, 45.73)),
.Names = c("SIZE", "TIME.A", "TIME.B", "TIME.D", "TIME.E"), class = "data.frame", row.names = c(NA, -3L))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.