在 Likert 包 R 中的图中指定颜色及其顺序

问题描述

我使用likert 包创建了一个发散的条形图,并想更改颜色。我知道likert图是ggplot2对象,因此添加例如scale_fill_brewer() 确实会改变颜色。但是,颜色按字母顺序应用到因子级别,而不是从“强烈不同意”到“强烈同意”的逻辑顺序,并且还会更改图例中的顺序。数据是数据框中的有序因子。

谁能解释如何在这些李克特图中更改颜色并指定顺序?我也试过 scale_fill_manual()scale_fill_discrete()

library(likert)
library(RColorBrewer)

data("mass")

head(mass)
str(mass)

#FIND OUT THE COLUMN NUMBERS FOR ALL COLUMNS
data.frame(colnames(mass))

p1 = plot(likert(mass[,3:15]))+
  scale_fill_brewer(palette = "Blues")
p1

That code generates this plot:

解决方法

我已经找到了一个使用指定颜色而不是 RColorBrewer 的解决方案:

p1 = plot(likert(mass[,3:15]),colors = c("red","pink","green","blue","yellow"))
p1

Will now produce this plot

如果有人有更优雅的解决方案,允许使用 RColorBrewer 调色板,我也有兴趣看到。

谢谢