【问题标题】:GGplot scale_fill_manual() unexpected behaviourGGplot scale_fill_manual() 意外行为
【发布时间】:2020-01-04 16:49:19
【问题描述】:

编辑* 假设我因为不可复制而被否决,尽管这些通常是复杂/敏感的数据集,但我想保持谨慎。

话虽如此,我通过在 GGplot 中设置 fill= 调用的因子水平解决了这个问题。仍然不能 100% 确定为什么会这样(即这如何影响颜色顺序),将进行一些研究并找出答案。

使用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。

干杯, 亚历克斯

【问题讨论】:

  • FBMA_ID 的因子 levels 的顺序是什么?
  • 它没有被设置为一个因素,这样做后这个问题得到了解决,谢谢!为什么因子水平会影响scale_fill_manual() 调用中的颜色顺序?
  • 你现在可能已经猜到了,因子水平的顺序决定了离散值的排序方式。订单必须来自某个地方,而因素水平就是它。

标签: r ggplot2 colors


【解决方案1】:

按照以下设置 plotdata 框架中的因子水平解决了这个问题。感谢 Roman Luštrik 的指导广告贡献。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-11
    • 2020-10-21
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 2021-01-08
    • 2017-03-10
    • 2019-05-01
    相关资源
    最近更新 更多