【问题标题】:R Plotting - groups of lines with known colorsR 绘图 - 具有已知颜色的线条组
【发布时间】:2011-02-23 17:02:09
【问题描述】:

我在 R 中做了很少有趣的绘图,所以我正在寻找一些帮助。提前致谢。

我有两个 data.frames:

> dim(MyDates)
[1] 371   1
> dim(SumData)
[1] 371  30

MyDates 包含 371 个周一至周五的日期。 SumData 包含 30 个与 MyDates 正确对齐的不同数据流。

数据分为 6 个组,定义如下:

groups=list(1:5,6:10,11:15,16:20,21:25,26:30)

我想创建一个图,将 SumData 中的所有 30 列绘制为(我认为)实线。 X 轴必须是升序的 MyDates。我想给每个组涂上不同的颜色。

group1 = red
group2 = yellow
group3 = green
group4 = cyan
group5 = blue
group6 = magenta

1 个绘图,30 条线,6 组,5 条线/组,每组一个预定义的颜色。

我怎样才能做到这一点?

谢谢!

【问题讨论】:

    标签: r


    【解决方案1】:

    有点小技巧,但这可以完成工作......

    require(zoo)
    
    # z <- zoo(SumData, MyDates)
    z <- zoo(matrix(rnorm(30*371),371,30),Sys.Date()-371:1)
    
    Groups <- list(1:5,6:10,11:15,16:20,21:25,26:30)
    Colors <- c("red","yellow","green","cyan","blue","magenta")
    
    Col <- vector("character",length(unlist(Groups)))
    for(i in 1:length(Groups)) {
      Col[Groups[[i]]] <- Colors[i]
    }
    
    plot(z, screens=1, col=Col)
    

    【讨论】:

      【解决方案2】:

      这是一个正确颜色的 ggplot 答案。

      require(ggplot2)
      
      ngroups = 6
      dummygroup <- function(g) 
                    (g * 50) + apply(matrix(rnorm(371 * 5), ncol = 5), 2, cumsum) 
      SumData <- do.call("data.frame", lapply(ngroups:1, dummygroup)) 
      MyDates <- as.Date(1:371, origin="2009-01-01") 
      df <- data.frame(MyDates, SumData) 
      dfmelt <- melt(df, id = "MyDates", variable_name = "series") 
      dfmelt$Groups <- factor(rep(1:ngroups, each = 371 * 5)) 
      
      Colors <- c("red","yellow","green","cyan","blue","magenta") 
      p <- ggplot(dfmelt, aes(MyDates, value, color = Groups, group = series)) 
      p <- p + geom_line() + scale_colour_manual(values = Colors) 
      print (p) 
      

      【讨论】:

      • 看起来很有趣,作为一个新手,代码很有帮助,但它在这里没有为我运行:
      • @LGTrader:似乎工作正常。我添加了一行来要求 ggplot2 包,以防出现问题。
      猜你喜欢
      • 1970-01-01
      • 2015-08-27
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 2021-09-16
      • 2013-09-07
      相关资源
      最近更新 更多