堆积条形图ggplot2 - 重新排序填充

时间:2015-07-23 17:40:12

标签: r ggplot2 bar-chart

我正在使用ggplot2绘制堆积条形图。我创建了一个包含变量car_makecolorproportion的数据框(df_car),后者是数字。沿着x轴有{20}种car_make,而color有4种作为填充。每个car_make的比例加起来为1.

我不希望car_make按字母顺序排列,所以我重新订购了它:

df_car$car_make <- factor(df_car$car_make, levels = c("toyota", "ford", "mercedes", etc.)

然后我重新订购了填充级别:

df_car$color <- factor(df_car$color, levels = c("red", "white", "black", "silver")

我绘制堆积条形图:

bp_car<- ggplot(df_car, aes(x=car_make, y=proportion, fill=color)) + geom_bar(stat="identity")

x轴按我指定的方式出现。但是条形填充的顺序仍然是按字母顺序排列的...只有图例的顺序响应并按指定的方式出现。执行...

levels(df_car$color)

...给出

  

“红色”,“白色”,“黑色”,“银色”

如何让酒吧填写重新订购?

1 个答案:

答案 0 :(得分:1)

您不需要包含颜色名称的数据列(ggplot以这种方式与基本图形不同)。一旦您的汽车水平得到适当的订购(如您所做),您需要设置填充色标

bp_car <- ggplot(df_car, aes(x = car_make, y = proportion, fill = car_make)) +
    geom_bar(stat="identity") +
    scale_fill_manual(values = c("red", "white", "black", "silver"))