Я часами просматривал документацию и StackOverflow, но, похоже, мне не удалось решить проблему. При использовании ggplot
я не могу получить правильный текст в легенде, даже если он находится в моем фрейме данных. Я пробовал scale_colour_manual
, scale_fill_manual
с разными значениями , labels=
например , как c("T999", "T888")", "cols"
.
Вот мой код:
T999 <- runif(10, 100, 200)
T888 <- runif(10, 200, 300)
TY <- runif(10, 20, 30)
df <- data.frame(T999, T888, TY)
ggplot(data = df, aes(x=T999, y=TY, pointtype="T999")) +
geom_point(size = 15, colour = "darkblue") +
geom_point(data = df, aes(x=T888, y=TY), colour = 'red', size = 10 ) +
theme(axis.text.x = element_text(size = 20), axis.title.x =element_text(size = 20), axis.text.y = element_text(size = 20)) +
xlab("Txxx") + ylab("TY [°C]") + labs(title="temperatures", size = 15) +
scale_colour_manual(labels = c("T999", "T888"), values = c("darkblue", "red")) + theme(legend.position="topright")
Помощь будет очень признательна!
ggplot
является самым счастливым (долго, не в ширину), и получить ощущение разницы между отображением вaes
тетический переменной вaes
вызове, против установки его снаружиaes
. Вам необходимоmelt
преобразовать данные в длинный формат и сопоставитьcolour
(илиfill
)aes
с соответствующей переменной.Ответы:
Упомянутый учебник @Henrik - отличный ресурс для изучения того, как создавать графики с помощью
ggplot2
пакета.Пример с вашими данными:
это приводит к:
Как упомянул @ user2739472 в комментариях: если вы хотите изменить только текстовые метки легенды, а не цвета из палитры по умолчанию ggplot, вы можете использовать
scale_color_hue(labels = c("T999", "T888"))
вместоscale_color_manual()
.источник
scale_color_hue(labels = c("T999", "T888"))
вместоscale_color_manual()
Названия легенд могут быть помечены определенной эстетикой .
Этого можно добиться с помощью функций
guides()
илиlabs()
изggplot2
(подробнее здесь и здесь ). Он позволяет добавлять свойства направляющих / легенд с помощью эстетического сопоставления.Вот пример использования
mtcars
набора данных иlabs()
:Отвечая на вопрос OP, используя
guides()
:источник
scale_ ..
илиlabs
.scale_color_manual(title="...", ...)
. Я вижу, вы изменили его, чтобы отсылать к эстетике цветаlabs()
. Предлагаю свое решение как альтернативу.