В Creating a ggplot legend with both color and shape существует способ объединения формы и цвета, но на основе одной переменной. Интересно, возможно ли это, если переменная разделена на две переменные.Создание легенды ggplot с цветом и типом линии на основе двух переменных
Hier тест данные:
(x <- data.frame(time =rep(1:5,4)
, sex = rep(c("m","f"), each=5)
, val_type = rep(c("obs","fit"),each=10)
, val = rep(1:4,each=5)*rep(1:5,4)
)
)
Чтобы показать, как я хочу иметь легенду я объединить две переменные:
x$sv <- paste(x$sex,x$val_type,sep='-')
здесь является ggplot с одной переменной:
ggplot(data=x, aes(x=time, y=val, linetype=sv, col=sv)) +
geom_line() +
scale_colour_manual(name = ""
, values=c("red","red","blue","blue")
, labels=c("Female fitted","Female observed"
,"Male fitted","Male observed")
) +
scale_linetype_manual(name = ""
, values=c(1,2,1,2)
, labels=c("Female fitted","Female observed"
,"Male fitted","Male observed")
)
и вот участок:
Я хотел бы иметь такую же легенду, но с использованием двух переменных отдельно
ggplot(data=x, aes(x=time, y=val, linetype=val_type, col=sex)) +
geom_line()
Возможно ли это? Причина, по которой я не хочу использовать комбинированную переменную, заключается в том, что я не хочу создавать переменные, которые мне не нужны для анализа. Другая причина - увидеть, как легенда может быть настроена вручную. Спасибо за помощь.
Это является довольно распространенным и часто необходимо создать фрейм данных только для одного участка, особенно для сложных участков. Я не вижу в этом проблемы. Но это хороший вопрос. –