使用2个参数创建Geometrie_bar

时间:2018-05-09 15:15:52

标签: r ggplot2 bar-chart

我正试图建立一个复杂的" ggplotgeom_bar

。{

所以我的data.frame如下所示:

df <- data.frame(Attribut = c("Text1", "Text2", "Text3", "Text4"), 
                 AA_P1 = c("0.111","0.32","0.16","0.332"),
                 AB_P1 = c("0.41","0.621","0.962","0.23"))

我的两个条形图是这样的:

s3 = ggplot(df, aes(x = Attribut, y= AA_P1)) +
        geom_bar(stat="identity", fill="blue") +
        theme(axis.text.x=element_text(angle=90,hjust=1)) +
        coord_flip()

s4 = ggplot(df, aes(x = Attribut, y= AB_P1)) +
        geom_bar(stat="identity", fill="red") + 
        theme(axis.text.x=element_text(angle=90,hjust=1)) +
        coord_flip()

所以我的目标是将这两个geom_bar组合成一个,方法是将数据框行AA_P1AB_P2作为条形图放在同一个轴上的相同图形中

同时可以将变量AA_P1AB_P2四舍五入到图中的两个小数点吗?

也许这个问题很容易,但我是R的初学者,我无法找到解决问题的可行方法。

任何帮助都会很棒:) 问候, 卢卡斯

1 个答案:

答案 0 :(得分:0)

如果我明白你的意思,你需要以整齐(呃)格式强制转换dataframe

df <- data.frame(Attribut = c("Text1", "Text2", "Text3", "Text4"), 
                 AA_P1 = c("0.111","0.32","0.16","0.332"),
                 AB_P1 = c("0.41","0.621","0.962","0.23"))

library(ggplot2)
library(tidyr)
library(dplyr)

df <- df %>% 
  gather(key, value, -Attribut) %>% 
  mutate(value = round(as.numeric(value), 2))

ggplot(df) + 
  geom_col(aes(Attribut, round(value, 2), fill = key), position='dodge')
#> Warning: attributes are not identical across measure variables;
#> they will be dropped

reprex package(v0.2.0)创建于2018-05-09。