簡體   English   中英

r中的堆積條形圖用於多個數據幀

[英]stacked bar chart in r for multiple data frames

很抱歉再次打擾你們,但我正在努力完成一項簡單的任務,在尋找解決方案並瀏覽互聯網之后,我無法解決這個問題。 這是交易。 我有三個陣列

c1 <- data.frame(cf=rep(100,10),m=seq(1,10,1))
c1$cf[10] <- 500

c2 <- data.frame(cf=rep(50,10),m=seq(1,20,2))
c2$cf[10] <- 650

c3 <- data.frame(cf=rep(150,5),m=seq(1,20,4))
c3$cf[5] <- 450

我想創建一個堆積條形圖,其中序列從1到20沿着x(三個第二列的所有可能條目)和沿y的三個第一列的(可能的)總和。

我試圖合並三個數據幀

m <- merge(c1,c2,by="m",all=TRUE)
m <- merge(m,c3,by="m",all=TRUE)

我融化了

m1 <- melt(m,id="m")
m1 <- na.exclude(m1)

並嘗試使用ggplot作為

ggplot(data=m1,aes(x=m,y=value,fill=row))

但我沒有得到任何東西,仍然不知道如何以正確的方式顯示條形圖,如果這是正確的方式來做我想要的。

萬一,非常感謝任何幫助。

首先讓我們來看看你的數據:

head(m1)
#   m variable value
# 1 1     cf.x   100
# 2 2     cf.x   100
# 3 3     cf.x   100
# 4 4     cf.x   100
# 5 5     cf.x   100
# 6 6     cf.x   100

看起來很好。 現在讓我們來看看你的繪圖命令:

ggplot(data=m1,aes(x=m,y=value,fill=row))

兩個問題:首先,引用上面的數據沒有名為“row”的列。 我假設你想要基於名為“變量”的列的​​填充顏色:

ggplot(data = m1, aes(x = m, y = value, fill = variable))
# Error: No layers in plot

二,什么類型的情節? 酒吧情節? 散點圖? 箱形圖? 你需要告訴ggplot要繪制什么。 這是什么錯誤消息告訴你-您所提供的數據,但不知道什么陰謀指示。 這在ggplot2任何介紹中ggplot2介紹。

ggplot(data = m1, aes(x = m, y = value, fill = variable)) +
  geom_bar()

但現在我們又得到了一個錯誤:

錯誤:將變量映射到y並使用stat =“bin”。 使用stat =“bin”,它將嘗試將y值設置為每個組中的個案數。 這可能會導致意外行為,並且在將來的ggplot2版本中將不允許這樣做。 如果您希望y表示案例計數,請使用stat =“bin”並且不要將變量映射到y。 如果您希望y表示數據中的值,請使用stat =“identity”。 有關示例,請參閱?geom_bar。 (已解散;最后一次在0.9.2版本中使用)

這是一個有用的錯誤,最好的! 如果您希望y表示數據中的值,請使用stat =“identity”。

ggplot(data = m1, aes(x = m, y = value, fill = variable)) +
    geom_bar(stat = "identity")

它有效。

暫無
暫無

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

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