Как я могу создать легенду в ggplot, которая присваивает имена и цвета столбцам, а не значениям в столбце фрейма данных?

#r #ggplot2 #plot #legend

Вопрос:

Я искал идеи для создания легенд в ggplot, но все решения предлагают только легенды, которые разделяют данные одного столбца в фрейме данных на разные группы по цвету и имени с помощью group = «имя столбца». Это глава данного фрейма данных:

ewmSlots Значения EWM Значения EWM2 Значения EWM3
1 0.7785078 0.7785078 0
2 0.7198410 0.7491744 0
3 0.7333798 0.7412771 0
4 0.9102729 0.8257750 0
5 0.7243151 0.7750450 0
6 0.8706777 0.8228614 0

Теперь мне нужна легенда, которая показывает значения EWM, значения EWM2 и значения EWM3 в их соответствующих названиях и цветах.

Чтобы привести простой пример, другие решения, которые я нашел, разрешили бы что-то подобное

время Секс
обед Мужской
обед Женский
обед Мужской
обед Женский

где легенда будет показывать секс и цвета каждого пола, что, очевидно, не является проблемой, которую я хочу здесь затронуть.

Комментарии:

1. это может помочь показать пример выходного графика, который вы хотите

Ответ №1:

Как насчет простого плавления данных (давайте назовем ваш приведенный выше пример фреймом данных по имени ewm )?

 # With melt ggplot(melt(ewm, id.vars = "ewmSlots"), aes(ewmSlots, value, color=variable, stat='identity'))    geom_line(size=1.4)   labs(color="")  

Если вы против плавления, то ниже приведено то же самое:

 # Without melt ggplot(ewm, aes(ewmSlots))     geom_line(aes(y=ewmValues, color="ewmValues"), size=1.4)     geom_line(aes(y=ewmValues2, color="ewmValues2"), size=1.4)     geom_line(aes(y=ewmValues3, color="ewmValues3"), size=1.4)     labs(color="", y="value")  

Комментарии:

1. Как я могу изменить цвета, заданные линии? ggplot автоматически назначает цвета каждой из трех строк.