更改geom_col ggplot2的颜色以显示3个站点的分类变量

时间:2017-06-22 07:18:11

标签: r ggplot2 colors bar-chart yaxis

这个网站的长期粉丝,虽然是第一次用户。 一直在寻找这个问题的类似/工作结果。 我试图显示两个级别因子的每个级别出现在三个位置的比例。全部在ggplot的并排条形图中。

这是我用来(尝试)创建图表的代码。结果是两个图表:一个分别使用geom_bar和geom_col。我所喜欢的基本上是两者的结合。第一个,但是第二个的颜色和Y轴。

谢谢!

    ggplot(df,aes(x = Stream,fill = death)) + 
    geom_bar(position = "dodge")+
    scale_fill_manual(values = c(rep(c("gray45", "gray75"))))+
    labs(fill="Time of Death") 

enter image description here

    death_stream <-df %>%
    group_by(Stream,Tree_Death)%>%
    summarise (n = n()) %>%
    mutate(rel.freq = paste0(round(100 * n/sum(n), 0), "%"))


    death_stream %>% 
    ggplot(aes(x = Stream,y = rel.freq)) + 
    geom_col(position = "dodge",fill = "grey50", colour = "black")+
    labs(fill="Time of Death")

enter image description here

1 个答案:

答案 0 :(得分:0)

谢谢Axeman,我想通了。 “rel.freq”的“阶级”。是个性格。我尝试指定为数字,而不是

    <int> 

它产生了

   <dbl>

事实证明我所要做的就是将tibble返回到data.frame并指定为数字。另一种方法是导出为ex​​cel文件,并将“rel.freq”列更改为Excel中的NUMBERS。

    death_stream
    # A tibble: 6 x 4
    Stream Tree_Death     n percent
    <int>      <int> <int>   <int>
    1      1          0    25      33
    2      1          1    50      67
    3      2          0    17      30
    4      2          1    40      70
    5      3          0   120      70
    6      3          1    51      30