Как построить график с помощью ggplot с несколькими столбцами в R

#r #ggplot2

#r #ggplot2

Вопрос:

У меня возникли проблемы при попытке построить следующий набор данных

 Holiday_sales1 <- read.csv(text="
Holidays,Date,Weekly_Sales
Super bowl,2010-02-12,48336678
Labor Day,2010-09-10,45634398
Thanksgiving,2010-11-26,65821003
Christmas,2010-12-31,40432519
Super Bowl,2011-02-11,47336193
Labor Day,2011-09-09,46763228
Thanksgiving,2011-11-25,66593605
Christmas,2011-12-30,46042461
Super Bowl,2012-02-10,50009408
Labor Day,2012-09-07,48330059
", header=T)
Holiday_sales1$Date <- as.Date(Holiday_sales1$Date)
  

Я использую этот код

 library(ggplot2)
ggplot(Holiday_sales1, aes(x =Date, y=Weekly_Sales))   geom_col(aes(fill=Holidays))
  

Но столбцы отображаются не так, как ожидалось. Например, 2010 показывает только один столбик, даже если набор данных содержит 4 точки данных за этот год.
введите описание изображения здесь

будем признательны за ваши отзывы

Комментарии:

1. Ваша x ось непрерывна. Ваши столбики отображаются там, где в течение года появляется сам праздник.

Ответ №1:

Данные отображаются правильно. Проблема в том, что, поскольку последние 2 события в 2010 году приходятся на конец года, столбцы отображаются ближе к 2011 году, чем к 2010 году.

Может быть, вы могли бы извлечь год из данных и построить график.

 library(dplyr)
library(ggplot2)

df %>%
  mutate(year = lubridate::year(Date)) %>%
  ggplot()    aes(x =  year, y=Sales, fill = Holidays)   
  geom_col(position = 'dodge')
  

введите описание изображения здесь