首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R Plotting具有已知颜色的线条组

R Plotting具有已知颜色的线条组
EN

Stack Overflow用户
提问于 2011-02-12 04:37:51
回答 2查看 671关注 0票数 0

我在R中只做了很少的有趣的绘图,所以我需要一点帮助。提前谢谢。

我有两个data.frames:

代码语言:javascript
复制
> dim(MyDates)
[1] 371   1
> dim(SumData)
[1] 371  30

MyDates拥有371个周一至周五的日期。SumData可以容纳30个不同的数据流,并与MyDates对齐。

数据被聚集在6个组中,定义如下:

代码语言:javascript
复制
groups=list(1:5,6:10,11:15,16:20,21:25,26:30)

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

代码语言:javascript
复制
group1 = red
group2 = yellow
group3 = green
group4 = cyan
group5 = blue
group6 = magenta

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

我如何才能做到这一点呢?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-12 06:29:31

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

代码语言:javascript
复制
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) 
票数 0
EN

Stack Overflow用户

发布于 2011-02-12 05:09:15

有点小题大做,但这就完成了工作...

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4973783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档