簡體   English   中英

從R中的兩個數據框創建聚簇堆積的條形圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM