How to plot multiple lines in R

前端 未结 2 1505
夕颜
夕颜 2021-01-11 15:59

I have a data that looks like this:

#d  TRUE    FALSE   Cutoff
4   28198   0   0.1
4   28198   0   0.2
4   28198   0   0.3
4   28198   13  0.4
4   28251   61         


        
2条回答
  •  北海茫月
    2021-01-11 16:44

    Since your data is already in long format and I like ggplot graphics anyway, I'd suggest that path. After reading your data in (note that TRUE and FALSE are not valid names, so R appended a . to the column names), the following should work:

    require(ggplot2)
    ggplot(dat, aes(FALSE., TRUE., colour = as.factor(d), group = as.factor(d))) + 
      geom_line()
    

    The ggplot2 website is full of good tips. Also note this search query on SO for lots of other good tips on related topics.

    enter image description here

    And for the record, here's how I'd approach your problem modifying your original code:

    colnames(dat)[2:3] <- c("T", "F")
    
    dis <- unique(dat$d)
    
    plot(NA, xlim = c(0, max(dat$F)), ylim = c(0, max(dat$T)))
    for (i in seq_along(dis)){
      subdat <- subset(dat, d == dis[i])
      with(subdat, lines(F,T, col = linecols[i]))
    }
    legend("bottomright", legend=dis, fill=linecols)
    

    enter image description here

提交回复
热议问题