簡體   English   中英

ggplot2 R中的堆疊條形圖

[英]ggplot2 stacked barplot in R

我正在嘗試從數據框創建堆疊式條形圖,填充是數據框的行名,而y是數據框的colSums和x數據框的colnames。 但是,我得到了錯誤:

“錯誤:美學必須為長度1或與數據(3)相同:x,y”

您能建議如何解決嗎? 先感謝您。

library(ggplot2)

df2<-data.frame(c(1000,700,500),c(2000,1500,1000))

rownames(df2)<-c("Revenue", "EBITDA", "EBIT")

colnames(df2)<-c("2020", "2021")

ggplot(data=df2, aes(x=colnames(df2), y=colSums(df2), fill=rownames(df2)))
library(tidyverse)

# example data
df2<-data.frame(c(1000,700,500),c(2000,1500,1000))
rownames(df2)<-c("Revenue", "EBITDA", "EBIT")
colnames(df2)<-c("2020", "2021")

# reshape dataset
df2_upd = df2 %>% rownames_to_column("x") %>% gather(year, value, -x) 

# plot using the new dataset
ggplot(data=df2_upd, aes(x=year, y=value, fill=x)) + geom_col()

在此處輸入圖片說明

您需要一個“整潔”的數據集來創建該圖(即,要使用的每個變量都應有自己的列)。

因此,首先,您需要添加一個帶有行名的列,以便將它們用作變量,然后重塑數據集的格式,以便在一列中包含2個不同的年份(2020年,2021年),並在列中包含相應的實際值。第三欄。

暫無
暫無

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

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