#r #ggplot2
#r #ggplot2
Вопрос:
Как мне отображать каждый год как отдельную строку в ggplot2 Я попробовал приведенный ниже код, но, похоже, он строится непрерывно как единый график.
library(ggplot2)
# Dummy data
data <- data.frame(
Date = c(as.Date("2017-01-14") - 0:13,as.Date("2016-01-14") - 0:13),
value = runif(28)
)
#data$Date <- strptime(data$Date, "%Y-%m-%d" )
data$Year <- as.character(year(data$Date))
data$Year <- factor(data$Year)
ggplot(data) geom_line(aes(x = Date, y = value, group=Year, color=Year))
scale_x_date(date_breaks = "1 day", date_labels = "%d-%m-%y")
theme(axis.text.x = element_text(angle = 90))
Но я хочу, чтобы каждый год был отдельным графиком на том же графике.
что-то вроде приведенного ниже
Ответ №1:
Попробуйте этот подход, определяющий день и месяц в вашей дате. У вас беспорядок на вашем графике из-за другого года в вашей переменной даты. Настройка формата может вам помочь. Здесь код:
library(ggplot2)
library(lubridate)
# Dummy data
data <- data.frame(
Date = c(as.Date("2017-01-14") - 0:13,as.Date("2016-01-14") - 0:13),
value = runif(28)
)
data$Year <- as.character(year(data$Date))
data$Year <- factor(data$Year)
#Format month
data$MonthDay <- format(data$Date,'%b-%d')
#Plot
ggplot(data) geom_line(aes(x = MonthDay, y = value, group=Year, color=Year))
theme_bw()
theme(axis.text.x = element_text(angle = 90))
Вывод:
Комментарии:
1. Могу ли я каким-либо образом указать дневные перерывы в 3 или более дней для шкалы оси x. Ось x кажется слишком запутанной, когда я строю весь год. Возможно, месячная шкала?
2. @Aprilian8 Привет, дорогой. Да, вы можете, но вам придется создавать настраиваемые метки.