Ошибка легенды в ggplot с использованием geom_point () и geom_line () для нескольких серий - PullRequest
1 голос
/ 09 мая 2020

Я пытаюсь построить точки и линии из следующего набора данных.

dados = structure(list(
Vertices = c(0.5, 1, 1.5, 2, 2.5, 3), 
AAA = c(1.8156, 2.2355, 2.4784, 2.6283, 2.7266, 2.7947), 
BBB = c(1.9603, 2.3802, 2.6231, 2.773, 2.8713, 2.9394), 
CCC = c(2.1559, 2.5758, 2.8188, 2.9686, 3.0669, 3.135)), 
row.names = c(NA, 6L), class = "data.frame")

ggplot(data = dados, aes(x = Vertices)) +

  #lower points
  geom_point(aes(y = AAA, color = "purple")) +
  geom_line(aes(y = AAA, color = "purple", linetype ="longdash")) +

  #intermediate points
  geom_point(aes(y = BBB, color = "blue")) +
  geom_line(aes(y = BBB, color="blue", linetype = "dotted")) + 

  #higher points
  geom_point(aes(y = CCC, color = "green")) +
  geom_line(aes(y = CCC, color="green", linetype = "dashed")) +

  scale_color_manual(values = c("purple", "blue", "green"),
                     labels = c("AAA","BBB","CCC")) +

  ggtitle("Curvas Spread Debentures") +
  xlab("Years") + ylab("% points")

#helps visualize numerically
dados 

В итоге: эстетические цвета не соответствуют кодовому порядку

«AAA» - самые низкие значения и предположительно фиолетовые, но отображаются зеленым цветом и назначаются как « CCC "в легенде.

« BBB »- это промежуточные значения, они должны быть синего цвета, но отображаются фиолетовым цветом и назначаются как« AAA »в легенде

« CCC "- самые высокие значения и должны быть зеленого цвета, но отображаются синим цветом и обозначены как" BBB "в легенде.

Я также попытался построить только точки или только линии для упрощения, но цвета и легенды тоже перепутаны. Это действительно простой код, который пошел совершенно не так, и я не вижу ошибки, есть мысли?

1 Ответ

1 голос
/ 09 мая 2020

Вы хотите сделать что-то подобное?

library(ggplot2)

tidyr::pivot_longer(dados, cols = -Vertices) %>%
    ggplot() + aes(Vertices, value, color = name) +
    geom_point() + geom_line(aes(linetype=name)) + 
    ggtitle("Curvas Spread Debentures") +
    xlab("Years") + ylab("% points") +
    scale_color_manual(values = c('purple', 'blue', 'green'))

enter image description here

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