Я действительно изо всех сил пытаюсь установить правильную легенду для geom_point
графика с регрессией Лесса, в то время как используется 2 набора данных
Я получил набор данных, который суммирует активность за день, а затемЯ строю график на том же графике, записывая всю активность по часам и дням, плюс кривую регрессии, сглаженную с помощью функции лёсса, плюс среднее значение каждого часа для всех дней.
Чтобы быть более точным, вот пример первого кода и возвращенного графика без легенды, чего я и ожидал:
# first graph, which is given what I expected but with no legend
p <- ggplot(dat1, aes(x = Hour, y = value)) +
geom_point(color = "darkgray", size = 1) +
geom_point(data = dat2, mapping = aes(x = Hour, y = mean),
color = 20, size = 3) +
geom_smooth(method = "loess", span = 0.2, color = "red", fill = "blue")
и графика (серым цветом)есть все данные, по часам, по дням. Красная кривая - регрессия Лесса. Синие точки - это средние значения для каждого часа):
Когда я попытался установить легенду, мне не удалось построить одну с объяснением как для вида точек (данные серого цвета, среднее значение синего цвета), так и для кривой лёсса (красного цвета). Ниже приведен пример того, что я пробовал.
# second graph, which is given what I expected + the legend for the loess that
# I wanted but with not the dot legend
p <- ggplot(dat1, aes(x = Hour, y = value)) +
geom_point(color = "darkgray", size = 1) +
geom_point(data = dat2, mapping = aes(x = Hour, y = mean),
color = "blue", size = 3) +
geom_smooth(method = "loess", span = 0.2, aes(color = "red"), fill = "blue") +
scale_color_identity(name = "legend model", guide = "legend",
labels = "loess regression \n with confidence interval")
Я получил хорошую легенду только для кривой
и еще одного испытания:
# I tried to combine both date set into a single one as following but it did not
# work at all and I really do not understand how the legends works in ggplot2
# compared to the normal plots
A <- rbind(dat1, dat2)
p <- ggplot(A, aes(x = Heure, y = value, color = variable)) +
geom_point(data = subset(A, variable == "data"), size = 1) +
geom_point(data = subset(A, variable == "Moy"), size = 3) +
geom_smooth(method = "loess", span = 0.2, aes(color = "red"), fill = "blue") +
scale_color_manual(name = "légende",
labels = c("Data", "Moy", "loess regression \n with confidence interval"),
values = c("darkgray", "royalblue", "red"))
Похоже, что всенастройки легенды смешиваются «странным» образом, это серая точка, которая закрывается серой линией, а затем - синим и красным (для трех меток). у всех фон синего цвета: