【问题标题】:R - Fixing plot legend and other plot characteristics for multiple line graphR - 修复多折线图的图例和其他绘图特征
【发布时间】:2019-06-20 21:41:22
【问题描述】:

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

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"))

我正在尝试使变量名称(即 Y1、Y2 等)成为图例上线条的名称以及图例本身的名称。我已经四处搜索以弄清楚如何更改图例,但我尝试过的任何事情都没有改变情节。我还需要修复轴标签并添加绘图标题。

我对 ggplot 还很陌生,因此非常感谢您指出正确的方向。如果我能澄清任何事情,请告诉我。

【问题讨论】:

    标签: r ggplot2 plot


    【解决方案1】:

    如果将数据从宽更改为长,然后绘制线条会更容易。您还在 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")
    

    【讨论】:

    • 这行得通。谢谢你。更改为宽格式当然会使代码更直观。
    • 对命名法的评论:OP 的原始 test.dat 是“宽格式”。此答案中的代码使用gather() 将其重塑为“长格式”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    • 1970-01-01
    • 2021-10-25
    相关资源
    最近更新 更多