我试图传达一些嘈杂的性能数据的总体印象,所以我想我想绘制一条原始数据的黄土平滑曲线。我应该明确指出,丢弃一些数据的精度是完全可以的;我只想指出,我所拥有的数字形成了(大部分)重复模式。
我想展示这一点的原因是为了证明我已经将所有数据视为一个整体,并且更详细地检查例如一天并不像听起来那么懒惰。
我试图对我的数据运行 smooth.spline 和 loess,但我认为由于我调用 ggplot 的方式而失败。我相信我必须对 ggplot 和 ggsave 做一个奇怪的咒语,因为这段代码实际上是在一个函数内部,并且由于范围界定行为之类的事情,函数内部对 ggplot 的调用似乎出错了(没有仔细研究这个;我没有不了解 R 的作用域)。
这是一些示例代码,显示了我正在尝试的内容:
library("ggplot2")
library("reshape2")
iops_october <- read.csv("iops_oct.csv", header=TRUE)
iops_october <- subset(iops_october, select=c("read_iops", "write_iops", "total_iops", "time"))
iops_october$time <- as.POSIXct(iops_october$time, format="%Y-%m-%d %H:%M:%S")
molten_iops <- melt(iops_october, id.vars="time")
#plot = ggplot(data=molten_iops, aes(x=time, y=value, color=variable)) + geom_line() + lines(smooth.spline(iops$time, iops$wrie_iops))
plot = ggplot(data=molten_iops, aes(x=time, y=value, color=variable)) + geom_line()
ggsave("october.svg", plot=plot, width=64, height=24, limitsize=FALSE)
因为这需要一些数据,你可以在这里找到一个~100kbyte 的文件
我想我的最终目标是根据时间平均所有数字(丢弃日期部分),但我认为我可以通过创建一个额外的 as.time 列来做到这一点,然后使用该“时间”作为平均值群组。