Барплот с частотой элемента ggplot2 в двух базах данных - PullRequest
0 голосов
/ 06 июля 2019

У меня есть список элементов;здесь я выбрал буквы "a, o, u, ü".и их частоты в двух базах данных.

df <- as.data.frame(cbind( letter = c("a", "o", "u", "ü"), Freq.english = c("10", "50", "20", ""), Freq.german = c("10", "50", "10", "10") ))

Как я могу отобразить их частоты на одном графике с помощью ggplot2?

Я могу отображать их отдельно, а затем могу присоединитьсяих:

p.df1 <- ggplot(df,aes(x = letter ,y=Freq.english))+geom_bar(stat ="identity")

p.df2 <- ggplot(df,aes(x = letter ,y=Freq.german))+geom_bar(stat ="identity")

Тем не менее, было бы неплохо, если бы они появлялись рядом друг с другом, возможно, даже по цвету.(аналогично этим решениям график ggplot рядом с использованием двух переменных ) THX

Обновление:

Мне удалось адаптировать ссылку на мой фрейм данных:

df <- reshape::melt(df, id = c("letter")) ggplot(data = df, aes(x = letter, y = value, fill = droplevels(variable) )) + geom_bar(stat = "identity")+ facet_wrap(~ variable)

Теперь ось значений не начинается с 0, следовательно, на Freq.english есть строка в "ü", хотя 0 встречается.

ТакжеМне нужно отсортировать значения для обеих переменных независимо в порядке возрастания.

THX

1 Ответ

1 голос
/ 06 июля 2019

Полагаю, это ...

df %>% 
  gather(key = langauge, value = Freq, -letter) %>% 
  mutate(Freq = as.integer(Freq)) %>% 
  ggplot(aes(letter, Freq, fill = langauge)) + 
  geom_bar(stat = "identity", position = "dodge")
...