【问题标题】:Line plots in R [duplicate]R中的线图[重复]
【发布时间】:2021-01-21 02:40:42
【问题描述】:

我有这样的数据

data1  data2  data3  data78 data89
10     47     85      52    78
8      78     22            4
4      44     44            5
       77     77            3
              11            7

我需要将 x 轴绘制为位置 (1-5),将 y 轴绘制为计数.. 示例(我在 excel 上做了)

我想在 R 中做同样的事情。我尝试使用 line 函数,它显示如下错误“结构中的错误(.Call(C_tukeyline, as.double(xy$x[ok]), as.double (xy$y[ok]), : 观察不足”

【问题讨论】:

    标签: r


    【解决方案1】:

    只需使用matplot

    matplot(d, type="l")
    legend("topright", names(d), col=seq(d), lty=seq(d), horiz=T, cex=.7, bty="n")
    


    数据:

    d <- structure(list(data1 = c(10L, 8L, 4L, 77L, 11L), data2 = c(47L, 
    78L, 44L, 77L, NA), data3 = c(85L, 22L, 44L, NA, 7L), data78 = c(52L, 
    NA, NA, 3L, NA), data89 = c(78L, 4L, 5L, NA, NA)), class = "data.frame", row.names = c(NA, 
    -5L))
    

    【讨论】:

      【解决方案2】:

      使用ggplot2可以获取长格式的数据并绘图。

      library(dplyr)
      library(ggplot2)
      
      df %>%
        tidyr::pivot_longer(cols = everything(), 
                     values_drop_na = TRUE) %>%
        group_by(name) %>%
        mutate(id = row_number()) %>%
        ggplot() + aes(id, value, color = name) + geom_line(size = 2)
      

      数据

      df <- structure(list(data1 = c(10L, 8L, 4L, 77L, 11L), data2 = c(47L, 
      78L, 44L, 77L, NA), data3 = c(85L, 22L, 44L, NA, 7L), data78 = c(52L, 
      NA, NA, 3L, NA), data89 = c(78L, 4L, 5L, NA, NA)), 
      class = "data.frame", row.names = c(NA, -5L))
      

      【讨论】:

        猜你喜欢
        • 2016-04-05
        • 1970-01-01
        • 2021-12-14
        • 2020-02-14
        • 2016-02-15
        • 1970-01-01
        • 2017-04-09
        • 2020-11-16
        • 1970-01-01
        相关资源
        最近更新 更多