Сделайте barplot с ggplot, но не показывает бары - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть такой набор данных

df1 
Ch   V
A    x1
B    x1
C    x2
D    x3
E    x2
..

Я хочу нанести на график в виде столбца количество раз, когда V было показано (по оси Y), а значения V показаны на x ось я попробовал это

df2 <- table(df$V)
df2
V1    Freq
x1     3
x2     4
..

(числа для Freq случайны в этом примере) и получил таблицу для построения графика, и мой код для построения графика с использованием ggplot2 равен

ggplot(df2, aes(x=V1, y=Freq)) + 
  geom_bar(stat = 'identity') 

It не показывает мне бары, хотя они просто не показаны. Я удостоверился, что значения из df оба числовые.

В чем проблема? Спасибо!

1 Ответ

2 голосов
/ 11 февраля 2020

@ antonina - вот пример, основанный на вашем посте - вы можете воспроизвести этот сюжет?

library(ggplot2)

df1 <- data.frame(
  Ch = c("A", "B", "C", "D", "E"),
  V = c("x1", "x1", "x2", "x3", "x2")
)

ggplot(df1, aes(x=V)) + 
  geom_bar(stat = "count") 

(или)

ggplot(df1, aes(x=V)) + 
  geom_bar(aes(y = ..count..))

example ggplot

Редактировать : Исходя из вашего комментария, может иметь смысл манипулировать вашими данными перед построением графика (например, используя пакет aggregate или tidyverse). Однако, если вы хотите быстро построить счетчики для x1, x2 и x3 в одном столбце, как вы и просили, то поднастроите свои данные и включите одну строку или число для x aestheti c, что-то как:

ggplot(df1[df1$V %in% c("x1", "x2", "x3"),], aes(x = "Single")) + 
  geom_bar(stat = "count")

Опять же, я немного запутался в том, что вы ищете. Я надеюсь, что это полезно.

...