Создание Geometrie_bar с двумя аргументами - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь построить "комплекс" ggplot с geom_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_P1 и AB_P2 в виде столбцов на одном графике на одной оси.

Одновременно можно ли округлить переменные AA_P1 и AB_P2 до двух десятичных точек на графике?

Возможно, этот вопрос является легким, но я абсолютный новичок в R, и я не смог найти подходящее решение для моей проблемы.

Любая помощь будет потрясающей :) С Уважением, Lukas

1 Ответ

0 голосов
/ 09 мая 2018

Если я понимаю, что вы имеете в виду, вам нужно привести 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

Создано в 2018-05-09 пакетом Представ. (v0.2.0).

...