我正在嘗試根據與此類似的資料創建條形圖:
| 鳥 | 博士 | 季節 |
|---|---|---|
| 安比 | 45 | 蛻皮 |
| 安比 | 45 | 蛻皮 |
| 安比 | 45 | 蛻皮 |
| 安比 | 45 | 配種 |
| 安比 | 45 | 配種 |
| 安比 | 45 | 冬天 |
| 安比 | 45 | 冬天 |
| 阿本 | 60 | 蛻皮 |
| 阿本 | 60 | 蛻皮 |
| 阿本 | 60 | 蛻皮 |
| 阿本 | 60 | 配種 |
| 阿本 | 60 | 配種 |
| 阿本 | 60 | 冬天 |
| 阿本 | 60 | 冬天 |
我希望所有的鳥類都列在 y 軸上,我希望 x 軸是博士。我希望根據每個季節的觀察比例對條形進行顏色編碼。例如,對于 abum,我希望條形達到 0.6,并且我希望根據季節對條形進行顏色編碼。abum 在蛻皮季節有 3/7 次觀察,在繁殖期間有 2/7 次觀察,在冬季有 2/7 次觀察。我希望欄中的顏色反映這一點。這是我到目前為止的代碼:
plot <- ggplot(data=test, aes(x=dr, y=bird, fill=season))
geom_bar(stat="identity")
scale_fill_brewer(palette="Paired")
theme_minimal()
這在 y 軸上正確設定了我的鳥并對條形進行顏色編碼,但我認為它使用了某種計數值,而不是 x 軸上的 dr 值。
代碼產生的影像:

x 軸不反映 dr 值。我不確定 x 軸值的來源。我還想顛倒鳥類的順序,使它們從上到下按字母順序排列。
uj5u.com熱心網友回復:
我不確定dr部分。如果有什么問題,請告訴我。
library(dplyr)
library(ggplot2)
library(forcats)
test %>%
group_by(bird, season) %>%
summarise(key = unique(dr),
dr = sum(dr)) %>%
group_by(bird) %>%
mutate(dr = dr/sum(dr) * key/100) %>%
ungroup %>%
mutate(bird = fct_reorder(bird, desc(bird))) %>%
ggplot(aes(x=bird, y=dr, fill=season))
geom_bar(stat="identity")
scale_fill_brewer(palette="Paired")
theme_minimal()
coord_flip()

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/358106.html
下一篇:如何將資料集重組為單列
