我有一個像這樣的資料框架:
但是由于某些原因,我對分組的geom_bar代碼感到非常糾結。 你能幫助我嗎?
uj5u.com熱心網友回復:
我們可以使用barplot從base R
barplot(t(df1)/span>。 旁邊= TRUE。 col = c("blue"/span>, "橙色", "灰色","黃色", "淺藍色" ))
輸出
或者如果我們需要一個ggplot/plotly
library(ggplot2)
library(dplyr)
library(tidyr)
library(plotly)
library(tibble)
p <- df1 %>%
rownames_to_column('rn') %>;%
pivot_longer(cols = -rn) %> %
ggplot(aes(x = rn, y = value。 填充= name))
geom_col(position = 'dodge')
theme_bw()
ggplotly(p)
輸出
資料
。df1 < -結構(list(A = c(65。 9, 7, 70。 9)。 B = c(23。 4, 5。 53, 2),
C = c(42。 5, 2。 17, 7)。 D = c(51。 7, 5, 57。 5)。 E = c(14,
2, 2, 13。 4))。 class = "data. frame",行。 names = c("AAA",)
"BBB", "CCC"。 "DDD", "EEE"))
uj5u.com熱心網友回復:
這里是一個使用tidyverse包的解決方案,它包含ggplot2和tidyr包。此外,這個答案還包括在條形圖的頂部將數字繪制成文本。
library(tidyverse)
df1 %>%
# 將rownames轉換為一個名為rowname的新列。
rownames_to_column() %>%
# 把資料變成長格式
pivot_longer(cols = -rowname,
names_to = "letter") %>%
# build plot
ggplot(aes(x = rowname, y = value。 填充=字母))
# 繪制柱狀圖并設定位置="躲避",因此每一列都是如此。
#從0值開始
geom_col(position = "dodge", width = 0. 9) 0.
# 添加文本,和值為2,這樣標簽就被繪制在列的頂部。
geom_text(aes(y = value 2。 標簽=值),
position = position_dodge(width = 0. 9))
# 添加bw主題或任何其他
theme_bw()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/330219.html
標籤:
上一篇:ggplot2中柱狀圖的密度值?
下一篇:簡單功能上的極端怪異行為





