/ / Wykres słupkowy w R z 2 kreskami dla każdej pozycji [duplicate] - r, ggplot2

Wykres słupkowy w R z 2 kreskami dla każdej pozycji [duplicate] - r, ggplot2

Chcę wykres słupkowy z ggplot2 (w R). Chciałbym mieć 2 bary za każdy miesiąc.

monthyear = c("January 2015", "February 2015", "March 2016",
"April 2016", "May 2016", "June 2016", "July 2016",
"January 2017", "Februrary 2017",
"August 2017", "September 2017", "October 2017")

c_report = c(742, 3420, 4263, 5147, 6255, 93872, 2323,
4677, 9398, 2112, 1000, 7890)

o_report = c(30185, 33894, 33642, 29439, 27879 ,52347,
4578, 3639, 10000, 48781, 64484, 5020)

df = data.frame(monthyear, c_report, o_report)

ggplot(data = df , aes(x=c_report, y = o_report, fill = monthyear) ) +
geom_bar(stat="identity", position="dodge")

Poniżej znajduje się wykres powyższego kodu.

wprowadź opis obrazu tutaj

Ale spodziewam się, że wykres będzie podobny do pokazanego poniżej.

wprowadź opis obrazu tutaj

Odpowiedzi:

1 dla odpowiedzi № 1

Musisz zmienić kształt danych, aby narysować zgrupowany wykres słupkowy.

wprowadź opis obrazu tutaj

library(reshape2)
library(ggplot2)

data.m <- melt(df, id.vars="dateyear")

ggplot(data.m, aes(dateyear, value)) +
geom_bar(aes(fill = variable), position = "dodge", stat="identity") + theme(axis.text.x = element_text(angle = 90, hjust = 1))