Мне интересно, есть ли какой-нибудь простой способ изменить имя в легенде (заданной с использованием эстетики цвета) на ggplot после создания графика.Я знаю, что это немного странно и обычно меняется в данных или при создании графика, но я хочу изменить метку на графике, созданном другим пакетом, и в пакете нет возможности изменить его.
Я мог бы, очевидно, скопировать функцию, сохранить свою собственную версию и изменить ее, но я просто хочу изменить одну вещь, поэтому мне кажется, что лучше, если я смогу это сделать потом.
Вот пример с некоторыми фиктивными данными, в основном я хочу перебросить средние и средние временные ряды, которые получаются из plot_daily_stats
fasstr, на «Modeled Mean» и «Modeled Median», чтобы их нельзя было спутать снаблюдаемое среднее, которое я добавляю вручную.
library(fasstr)
library(tibble)
library(ggplot2)
#create some fake data
df <- tibble(Date = seq.Date(from = as.Date("1991-01-01"), as.Date("1997-12-31"),
by = "day"),
DayOfYear = as.numeric(format(Date, "%j")),
Value = runif(2557,0,1) + 50 + (cos((1/60)*DayOfYear)+4))
obsdf <- tibble(Date = seq.Date(from = as.Date("1900-01-01"), as.Date("1900-12-31"),
by = "day"),
DayOfYear = as.numeric(format(Date, "%j")),
Value = runif(365,0,1) + 51 + (cos((1/60)*DayOfYear)+4))
# create plot using fasstr package
plt1<- fasstr::plot_daily_stats(df)
# add my own trace. I also want to rename the trace "Mean" to
# "Modelled Mean" to avoid confusion (and same with Median)
plt1$Daily_Statistics +
geom_line(data = obsdf, aes(x = Date, y = Value, colour = "Observed Mean"))+
scale_colour_manual(values = c("red", "black","blue"))
Имена даны в fasstr
в виде жестко закодированных имен:
daily_plots <- ... +
ggplot2::geom_line(ggplot2::aes(y = Median, colour = "Median")) +
ggplot2::geom_line(ggplot2::aes(y = Mean, colour = "Mean"))