使用以下代码:
library("ggplot2")
require(zoo)
args <- commandArgs(TRUE)
input <- read.csv(args[1], header=F, col.names=c("POS","ATT"))
id <- args[2]
prot_len <- nrow(input)
manual <- prot_len/100 # 4.3
att_name <- "Entropy"
att_zoo <- zoo(input$ATT)
att_avg <- rollapply(att_zoo, width = manual, by = manual, FUN = mean, align = "left")
autoplot(att_avg, col="att1") + labs(x = "Positions", y = att_name, title="")使用数据:
> str(input)
'data.frame': 431 obs. of 2 variables:
$ POS: int 1 2 3 4 5 6 7 8 9 10 ...
$ ATT: num 0.652 0.733 0.815 1.079 0.885 ...我有:

我想上传的input2有不同的长度(因此,不同的x轴)和重叠的2条曲线在同一个曲线(我的意思是重叠,因为我想要两条曲线在相同的绘图大小,所以我会“忽略”重叠的轴标签和标题),我想比较形状,不管输入的长度。
首先,我尝试生成玩具input2,更改manual值,这样我就有了att_avg2,其中manual等于例如7。在原始autoplot和新的autoplot-2之间,我添加了par(new=TRUE),但这不是我预期的输出。有什么关于如何做到这一点的提示吗?也许将zoo系列中的att_avg保存到data.frame中而不是使用autoplot会更好?谢谢
更新,对G. Grothendieck的回应:
如果我这样做了:
[...]
att_zoo <- zoo(input$ATT)
att_avg <- rollapply(att_zoo, width = manual, by = manual, FUN = mean, align = "left") #manual=4.3
att_avg2 <- rollapply(att_zoo, width = 7, by = 7, FUN = mean, align = "left")
autoplot(cbind(att_avg, att_avg2), facet=NULL) +
labs(x = "Positions", y = att_name, title="")我得到了

和一个警告消息:Removed 1 rows containing missing values (geom_path).
发布于 2015-04-09 20:43:55
par用于经典图形,而不是用于ggplot2。如果您有两个zoo系列,只需将系列cbind或merge放在一起,然后使用facet=NULL对它们进行autoplot
library(zoo)
library(ggplot2)
z1 <- zoo(1:3) # length 3
z2 <- zoo(5:1) # length 5
autoplot(cbind(z1, z2), facet = NULL)注意:问题省略了input2,因此可能会有一些未显示的方面的额外考虑。

https://stackoverflow.com/questions/29536968
复制相似问题