簡體   English   中英

如何更改ggplot堆疊式barplot中僅一個堆疊的顏色?

[英]How to change color of only one stack in ggplot stacked barplot?

我有一個ggplot堆積的barplot如下

在此處輸入圖片說明

我只想為dec更改堆棧的顏色組合,例如c(“ red”,“ green”)。 我想要的輸出是

desired_plot

我試過了

ggplot() +    
geom_bar(data = x1, aes(y = values, x = months, fill = variable), stat="identity") +   
scale_fill_manual(values = c("orange", "blue")) +       
geom_bar(data = x2, aes(y = values, x = months, fill = variable), stat="identity") +
scale_fill_manual(values = c("red", "green"))

它僅采用最后的scale_fill_manual值。 如果是常規條形圖,則更改geom_bar fill有效。 我無法弄清楚如何在不為圖例創建額外值的情況下對堆積圖執行此操作。

在我的代碼中,x1包含jan到nov的值,x2包含dec的值。 兩者都是整個數據的子集。

沒有數據集很難給出代碼,但是您想要嘗試做的是創建一個新的type列(用於完整的數據集)以區分Dec列和其他列,因此您將擁有四種類型:雞肉,雞蛋,雞肉-12月,雞蛋-12月。 根據此新列fill ,您將獲得12月柱形的新顏色。

然后,您可以使用

scale_fill_manual(breaks=c("chickens","eggs"),
                values=c("green", "orange", "red", "blue")) 

只在圖例中包含您想要的那些值(請原諒我的隨機顏色選擇-為您的圖形使用更好的顏色)。

暫無
暫無

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

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