R-修复多线图的图例和其他图特征

时间:2019-01-27 20:38:44

标签: r ggplot2 plot

我正在尝试用代表不同变量(即列)的五条单独的线绘制图表。我一直在尝试修复图例,但无法正确解决。颜色似乎也不正确,所以我对如何进行感到困惑。数据,代码和当前图如下:

test.dat <- data.frame(matrix(c(0,.072,.063,.062,.059,.055,1,.029,.035,.024,.036,.017),
nrow=2,byrow=T))
colnames(test.dat) <- c("X1","Y1","Y2","Y3","Y4","Y5")

test.plot <- ggplot(data=test.dat) +
  geom_line(aes(x=X1, y=Y1, color="darkred")) +
  geom_line(aes(x=X1, y=Y2, color="darkgreen")) +
  geom_line(aes(x=X1, y=Y3, color="darkblue")) +
  geom_line(aes(x=X1, y=Y4, color="darkorange")) +
  geom_line(aes(x=X1, y=Y5, color="darkgoldenrod"))

enter image description here

我正在尝试为图例上的行命名变量名称(即Y1,Y2等),并为图例本身命名。我四处搜寻以找出如何更改图例,但是我没有尝试更改图。我还需要修复轴标签并添加图标题。

我对ggplot还是很陌生,所以朝正确方向的一点将不胜感激。请让我知道是否可以澄清任何事情。

1 个答案:

答案 0 :(得分:3)

如果将数据从宽变长,然后再绘制线条,会更容易。您还要在aes()参数中定义颜色,该颜色不会更改颜色,但实际上会创建一个具有该值的变量。 您没有确切提及要使用轴标签的操作,但是可以使用scale_x_continuous或scale_y_continuous

对其进行编辑。
library(tidyverse)

test.dat <- data.frame(matrix(c(0,.072,.063,.062,.059,.055,1,.029,.035,.024,.036,.017),
                              nrow=2,byrow=T))
colnames(test.dat) <- c("X1","Y1","Y2","Y3","Y4","Y5")

test.dat %>%
    gather(Y_var, value, -X1) %>%
    ggplot(aes(x = X1, y = value, color = Y_var)) + 
    geom_line() + 
    scale_color_manual(
        values = c("darkred","darkgreen","darkblue","darkorange",
                   "darkgoldenrod")
    ) + 
    labs(title = "Some plot title",
         color = "Some legend title")

enter image description here