sjp.frq - r中条形图的不同颜色

时间:2016-06-21 15:42:58

标签: r colors sjplot

我正在准备一系列情节,使用sjPlot包。对于简单的频率演示,我使用sjp.frq。我想为每个酒吧使用不同的颜色。我找到了选择颜色的选项,但它只适用于整个系列:switch geom.colors允许更改所有条形的颜色。甚至组合geom.colors = c(" color1"," color2"," color3")也不起作用。

是否有任何解决方案可以实现与此类似的功能:

data(mpg)

sjp.frq(mpg$year,title = "", axis.title = "", 
        show.prc = TRUE, show.n = FALSE,
        show.axis.values = FALSE)

1 个答案:

答案 0 :(得分:0)

我不确定,但我想我记得ggplot2默认情况下使用这个颜色方案的情节,如果没有指定颜色美学。但是,ggplot的更高版本现在使用单一颜色表示简单的频率(没有分组/颜色美学):

library(ggplot2)
library(sjmisc)
data(efc)
ggplot(efc, aes(e42dep)) + geom_bar()

enter image description here

这就是您发布的图像具有不同颜色的原因,而现在sjp.frq仅以一种颜色打印条形图。由于您没有简单频率条的分组美学,因此无法为sjp.frq中的每个几何/条形图提供不同的颜色。在这种情况下,您必须找到自己的解决方案并添加组,例如:

ggplot(efc, aes(e42dep, fill = to_label(e42dep))) + 
  geom_bar() + 
  labs(y = NULL, x = get_label(efc$e42dep), fill = get_label(efc$e42dep)) +
  scale_x_continuous(breaks = c(1:4), labels = get_labels(efc$e42dep))

enter image description here

然而,对我而言,给每个条形图分别为提供轴标签没有多大意义。使用图例而不是轴标签(下拉轴标签)会起作用,但这会使图表不那么直观,因为您必须在图例和条形之间切换以找出哪个条形代表哪个类别。对于简单的频率图,这是不必要的复杂性。