如何按因子值的顺序手动设置条形颜色?

时间:2017-03-19 11:05:03

标签: r ggplot2 colors bar-chart

我试图用'ggplot2'和'facet_grid'在一帧内制作两个条形图,它运作得很好。但是现在我想手动设置条形的颜色(两个图形为4) - 比方说 - 绿色,蓝色,红色和橙色(按此顺序)。在下面的代码中,条形的颜色取决于变量'V1',它具有四个级别/值,1到4。我试图将'填充'设置为具有四种颜色的矢量列,但它不起作用。我试着用mtcars做一个例子(见下文)。一个为我的df(进一步下来)也许有人知道如何改变这个代码。按顺序,每个栏选择你自己的颜色

# mtcars

p = ggplot(mtcars, aes(x = cyl, fill = cyl)) + 
    geom_bar(aes(y = (..count..)/tapply(..count..,..PANEL..,sum)[..PANEL..])) + 
    scale_y_continuous(labels = scales::percent) + 
    geom_text(aes(y = ((..count..)/sum(..count..)), 
            label = scales::percent((..count..)/tapply(..count..,..PANEL..,sum)[..PANEL..])), 
        stat = "count", vjust = -0.25) +
    facet_grid(.~ am) +
    scale_fill_discrete(name = " ") +
    labs(title = " ",
   x = " ",
   y = " ")
p

# my df:

p = ggplot(kc, aes(x = V1n, fill = V1)) + 
 geom_bar(aes(y = (..count..)/tapply(..count..,..PANEL..,sum)[..PANEL..])) + 
 scale_y_continuous(labels = scales::percent) + 
 geom_text(aes(y = ((..count..)/sum(..count..)), 
            label = scales::percent((..count..)/tapply(..count..,..PANEL..,sum)[..PANEL..])), 
        stat = "count", vjust = -0.25) +
 facet_grid(.~ METING.f) +
scale_fill_discrete(name = "Beschikt uw instelling over  een\naandachtsfunctionaris kindermishandeling?\n") +
labs(title = " ",
   x = "Vraag 1",
   y = "Percentage")
p

0 个答案:

没有答案