ggplot2: нет легенды с несколькими точками geom_point - PullRequest
0 голосов
/ 20 января 2020

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

Почему-то я действительно борюсь с получением правильной легенды, а также я не смог найти решение на стеке потока Я попытался использовать «заливку» в команде aes, но если у меня есть более двух графиков с заливкой, я получаю сообщение об ошибке:

«Ошибка: эстетика должна быть либо длины 1, либо одинаковой в качестве данных (1): x, y "

Это упрощенный минимальный пример базовой структуры c моего графика:

da <- as.character(c(1:10))
type <- c("a", "b", "c", "a", "b", "c", "a", "b", "c", "a" )
value <- c(1:10)
df <- data.frame(da, type, value)

require("ggplot2")
ggplot() + 
  geom_point(data = subset(df, type %in% c("a")), aes(x=da, y=value), shape=1, color="red",  size=5) +
  geom_point(data = subset(df, type %in% c("b")), aes(x=da, y=value), shape=2, color="darkorange", size=3) +
  geom_point(data = subset(df, type %in% c("c")), aes(x=da, y=value), shape=3, color="violet", size=3) 

Как добавить легенда с пользовательскими надписями?

Спасибо! : -)

1 Ответ

2 голосов
/ 20 января 2020

Зачем вам создавать отдельные слои и вручную создавать легенду, когда вы можете просто создать один слой и сопоставить эстетику с вашими данными (в данном случае просто "type")? Если вы хотите указать c значения цвета или формы, вы можете указать их, используя такие шкалы, как scale_colour_manual, scale_shape_discrete, et c)

da <- as.character(c(1:10))
type <- c("a", "b", "c", "a", "b", "c", "a", "b", "c", "a" )
value <- c(1:10)
df <- data.frame(da, type, value)

require("ggplot2")
#> Loading required package: ggplot2
ggplot(df, aes(x=da, y=value, color=type, shape = type, size = type)) + 
  geom_point()
#> Warning: Using size for a discrete variable is not advised.

Создано в 2020-01-20 пакетом Представление (v0.3.0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...