#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')