我想使用R来绘制函数f
的运行时结果。在x轴上的每个数据点,我运行模拟10次,我有3个单独的行。在每个数据点,我还想包括显示最高和最低运行时间的垂直线的范围,而数据线则通过每组10个结果的平均值的点。
为了让自己更清楚,我嘲笑了一个我想描述的情节:
我不熟悉R,因此我不确定如何保存我的数据集。这就是我的数据可能与底部的实线相似:
------------------------------------------
| | Runs for solid line |
------------------------------------------
| Input | 1 | 2 | 3 | 4 | 5 |
------------------------------------------
| 2000 | 0.6 | 0.7 | 0.75 | 0.51 | 0.6 |
| 4000 | 0.9 | 1.0 | 1.1 | 0.8 | 0.7 |
| 6000 | 1.4 | 1.3 | 1.5 | 1.43 | 1.56 |
------------------------------------------
我可以想象另外两个表:一个用于虚线,一个用于不规则的虚线。对于上表,我想在2000处的垂直线表示max = 0.75,min = 0.6,实线表示平均值0.632。对于规则和不规则的虚线也一样。
答案 0 :(得分:3)
我建议阅读R的介绍。
您的数据:
DF <- read.table(text="Input 1 2 3 4 5
2000 0.6 0.7 0.75 0.51 0.6
4000 0.9 1.0 1.1 0.8 0.7
6000 1.4 1.3 1.5 1.43 1.56",header=TRUE)
让我们将其重塑为更合理的格式(长格式):
library(reshape2)
DF <- melt(DF,id="Input")
为该行添加ID:
DF$group <- "a"
第二行:
DF2 <- DF
DF2$value <- DF2$value+1
DF2$group <- "b"
将所有数据放在一个data.frame中:
DF <- rbind(DF,DF2)
现在我们可以策划。绘图的可能性很多。这是一个包括计算您想要绘制的摘要统计数据的文件:
library(ggplot2)
ggplot(DF,aes(x=Input,y=value,group=group)) +
stat_summary(fun.y="mean",geom="line",aes(linetype=group)) +
stat_summary(fun.ymin="min",fun.ymax="max",geom="errorbar")