簡體   English   中英

重新訂購欄 plot 通過填寫 R

[英]reorder bar plot by fill in R

如何設置這個plot升序排列? 提前謝謝了。

library(ggplot2)
library(reshape2)
iris2 <- melt(iris, id.vars="Species"); iris2


ggplot(data=iris2, aes(x=Species, y=value, fill=variable))+
  geom_bar(stat="identity", position="dodge")

您可以使用reorder整體升序設置條形圖:

iris2$variable <- reorder(iris2$variable, iris2$value)

ggplot(data=iris2, aes(x=Species, y=value, fill=variable))+
  geom_bar(stat="identity", position="dodge")

在此處輸入圖像描述

請注意,所有 3 個組的順序都相同,這意味着 setosa 有一個小節“不合適”。

有可能,但更棘手的是,讓每個物種的條形圖按升序排列。

library(tidyverse)

iris2 %>%
  group_by(variable, Species) %>%
  summarise(value = max(value)) %>%
  mutate(xval = as.numeric(as.factor(Species))) %>%
  group_by(Species) %>%
  mutate(xval = 0.2 * order(value) - 0.5 + xval) %>%
  ggplot(aes(x=xval, y=value, fill=variable))+
  geom_col(position="dodge", width = 0.2) +
  scale_x_continuous(breaks = 1:3, labels = unique(iris2$Species),
                     name = "Species")

在此處輸入圖像描述

暫無
暫無

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

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