簡體   English   中英

使用ggplot2中的堆積條形圖訂購數據

[英]Ordering Data with Stacked Bar Charts in ggplot2

備用標題:用ggplot2中的離散圖例替換連續圖例

我正在嘗試使用以下代碼創建堆積的條形圖:

DataTest = data.frame(Order = 1:7,
                  Data = c(340, 464, 93, 218, 16, 206, 103),
                  Category = factor(c("Free", "Unavailable", "Free",
                                    "Unavailable", "Free", "Unavailable", "Free"),
                                    levels = c("Free", "Unavailable")))

ggplot(DataTest, aes(x="Thing", y=Data, fill=Category)) +
  geom_bar(position="stack", stat="identity")

忽略x,這並不重要。 繪制的圖形如下所示:

帶2個純色塊的堆疊條形圖

問題是,我希望數據像數據框中的行一樣排序,因此堆疊的條形圖應以交替的顏色進行條紋,如下所示:

堆疊的條形圖,具有交替的顏色,但具有連續的圖例,而不是離散的圖例

實際上,除了圖例以外,此條形圖正是我想要的。 我希望圖例僅顯示兩種顏色,但我不知道該如何設置。

該條形圖的代碼為:

DataTest[["Category"]] = c(1, 0, 1, 0, 1, 0, 1) # change Category from a factor to numeric
ggplot(DataTest, aes(x="Thing", y=Data, fill=Category)) +
  geom_bar(position="stack", stat="identity")

與之前的代碼段相同,但是這次的Catgeory是僅1s和0s的數字向量。 如果我使用邏輯矢量而不是數字,則條再次按顏色分組。

這是我嘗試的最后一件事:

ggplot(DataTest, aes(x="Thing", y=Data, fill=Order, colour=Category)) +
  geom_bar(position="stack", stat="identity")

凌亂的條形圖,具有一定順序,但仍按類別分組

這表明,盡管stat =“ identity”,ggplot仍堅持對數據進行排序。

所以。

明確地說,我不知道如何按訂單對數據進行排序,而是根據類別為數據着色-除了引入不需要的連續圖例以外。

不確定我能理解您的問題。 黑暗中的野刺在這里:

DataTest$gp <- seq(nrow(DataTest))

ggplot(DataTest, aes(x="thing", y=Data, fill=Category, group=factor(gp))) + 
      geom_bar(stat="identity")

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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