簡體   English   中英

GGplot scale_fill_manual() 意外行為

[英]GGplot scale_fill_manual() unexpected behaviour

編輯* 假設我因為不可復制而被否決,雖然這些通常是復雜/敏感的數據集,但我想保持謹慎。

話雖如此,我通過在 GGplot 中設置fill=調用的因子水平來解決這個問題。 仍然不是 100% 確定為什么會這樣(即這如何影響顏色順序),將進行一些研究並找出答案。

使用scale_fill_manual在條形圖中手動設置顏色時scale_fill_manual

因此,我將顏色列表輸入到條形繪圖例程中,該例程從代碼框架中提取數據(即名稱列表的分數),在該列表的頂部和底部附加一個分數(即平均值和基准),然后將顏色設置為彩虹光譜(取決於名稱的數量),並為頂部和底部條形平均值和基准(藍色和金色)設置顏色

我的問題是顏色以某種方式不正常......

plotdata <- subset(groupdata,scale.code==(k)&year!=prior.year) #select data for the given scale
#create the plot for the scale
curr.plot <- ggplot(plotdata, aes(x = FBMA_ID, y = Plot.score, fill=FBMA_ID))+ 
  geom_bar(width=0.7, stat="identity") +  
  theme(legend.position="none") +
  coord_flip() +
  scale_x_discrete(limits = rev(unique(plotdata$FBMA_ID)))+
  scale_y_continuous(limit = MMlimits, oob=squish, minor_breaks = value.breaks.minor, 
                     breaks = value.breaks.major, labels = value.labels, expand = c(0,0)) +
  scale_fill_manual(values=rev(temp.col))+

請注意,使用的顏色(即temp.col )以正確的順序輸出

 [1] "gold"        "#BFFF80"    
 [3] "#9FFF80"     "#80FF80"    
 [5] "#80FF9F"     "#80FFBF"    
 [7] "#80FFDF"     "#80FFFF"    
 [9] "#80DFFF"     "#80BFFF"    
[11] "#809FFF"     "#8080FF"    
[13] "#9F80FF"     "#BF80FF"    
[15] "#DF80FF"     "#FF80FF"    
[17] "#FF80DF"     "#FF80BF"    
[19] "#FF809F"     "#FF8080"    
[21] "#FF9F80"     "#FFBF80"    
[23] "dodgerblue4"

雖然情節輸出為

在此處輸入圖片說明

用第一個和最后一個顏色現在第二個和倒數第二個。

我可能錯過了一些引人注目的東西,漫長的一天!

如果需要,我可以做一個 dput。

干杯,亞歷克斯

如下在 plotdata 框中設置因子水平解決了這個問題。 感謝 Roman Luštrik 的指導廣告貢獻。

ggplot(plotdata, aes(x = FBMA_ID, y = Plot.score, fill=factor(plotdata$FBMA_ID, levels = names))

暫無
暫無

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

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