/ / zgrupowany wykres słupkowy ggplot [duplicate] - r, ggplot2

zgrupowany wykres słupkowy ggplot [duplicate] - r, ggplot2

Mam następujący zestaw danych:

  Year Generated Rejected
1 2012 133118208  7256986
2 2013 289487598 49652610
3 2014 192232775 31765480
4 2015  40434968  2513930

Próbuję wygenerować zgrupowany wykres słupkowy, który będzie miał Year na osi X i skali liczbowej na osi Y, aby pokazać wygenerowane liczby V odrzucone w roku.

Jestem zdezorientowany, do czego mam ustawić oś y? Nie próbowałem używać spread() jeszcze funkcjonować, ponieważ mam nadzieję, że może być łatwiejszy sposób

Odpowiedzi:

2 dla odpowiedzi № 1

Najpierw musisz rozmieścić dane w odpowiednim formacie do wykreślania:

library(reshape2)
df1 <- melt(df, id = "Year")

Lub możesz użyć tidyr pakiet:

library(tidyr)
df1 <- gather(df, variable, value, -Year)

Które mogą być łatwiejsze do zrozumienia, jeśli nie jesteś zaznajomiony z melt()

Zasadniczo mówi: "Zbierz wszystkie zmienne w df z wyjątkiem Year, wywołanie nowej kolumny klucza variable i nowa kolumna wartości value"

library(ggplot2)
ggplot(df1, aes(Year, value)) +
geom_bar(aes(fill = variable), position = "dodge", stat = "identity")

wprowadź opis obrazu tutaj

Jeśli wolisz formatować liczby za pomocą przecinków oddzielających tysiące:

library(ggplot2)
library(scales)
ggplot(df1, aes(Year, value)) +
geom_bar(aes(fill = variable), position = "dodge", stat = "identity") +
scale_y_continuous(name = "Values", labels = comma)

wprowadź opis obrazu tutaj