Я маю проблеми з налаштуванням спеціальних міток легендна ділянках, де раніше я вказав власні типи ліній і кольори. Подібне питання стосовно stackoverflow, що стосується користувацьких легенд для Типи ліній і лінійні кольори. Однак, коли ви хочете вказати легендові мітки на вершині двох вищезазначених атрибутів, ggplot2, здається, починає руйнуватися.
Ось мій мінімально відтворений приклад:
library(ggplot2)
df <- data.frame(x = rep(1:2, 2), y = c(1, 3, 2, 2),
treatment = c(rep("one", 2), rep("two", "2")))
ggplot(df, aes(x = x, y = y, colour = treatment, linetype = treatment)) +
geom_line() +
scale_linetype_manual(values = c(1, 3),
labels = c("Treatment one", "Treatment two")) +
scale_color_manual(values = c("black", "red"))
Наведений вище код дає такий графік
Налаштування міток в будь-якому scale_linetype_manual()
або scale_color_manual()
призводить до створення двох окремих легенд. Той, котрий має правильну риску ліній, завжди буде безбарвним. З іншого боку, коректний колір не буде правильно відображати типи ліній (лише суцільні лінії).
Чи є спосіб контролювати колір, тип лінії таЛегенда позначає всі одразу в ggplot2? Або це обмеження пакунку, де я повинен просто правильно вказати мітки в кадрі даних з getgo?
Відповіді:
2 для відповіді № 1Зробіть мітку однаковою для обох scale_linetype_manual()
і scale_color_manual()
.
library(ggplot2)
df <- data.frame(x = rep(1:2, 2), y = c(1, 3, 2, 2),
treatment = c(rep("one", 2), rep("two", "2")))
ggplot(df, aes(x = x, y = y, colour = treatment, linetype = treatment)) +
geom_line() +
scale_linetype_manual(values = c(1, 3),
labels = c("Treatment one", "Treatment two")) +
scale_color_manual(values = c("black", "red"),
labels = c("Treatment one", "Treatment two"))