Обратите внимание, что это два совершенно разных вопроса, было бы лучше разделить их.
Вам нужно поместить оба color
в aes()
, затем используйте theme(legend.position = c(0.9, 0.2))
для перемещенияЛегенда.
Обратите внимание, что цвета теперь не будут соответствовать (они просто "метки"), вам следует определить собственную цветовую гамму и легенду с помощью scale_color_manual()
.
ggplot(mtcars, aes(x=disp)) +
labs(title = "My Plot") +
geom_smooth(aes(y=cyl, col="blue"), method="loess") +
geom_smooth(aes(y=hp * scaleFactor, col="red"), method="loess") +
scale_y_continuous(name="cyl", sec.axis=sec_axis(~./scaleFactor, name="hp")) +
theme(legend.position = c(0.9, 0.2)) +
scale_x_continuous(expand = c(0, 0))
Ошибка в as.Date.numeric (значение): необходимо указать 'origin' "*
Возможно, потому что x
в этом случае as.Date
тип, scale_x_date(expand = c(0, 0))
работает.
Вот пример:
set.seed(123)
dat <- data.frame(
dates = seq(from=as.Date("2018-01-01"), to=as.Date("2018-01-10"), by="day"),
val1 = sample(10),
val2 = sample(10)
)
ggplot(dat, aes(x=dates)) +
geom_line(aes(y=val1, color = "red")) +
geom_line(aes(y=val2, color = "blue")) +
theme(legend.position = c(0.9, 0.2)) +
scale_x_date(expand = c(0,0)) +
scale_y_continuous(name="val2", sec.axis=sec_axis(~./1, name="val2"))