2

我想使用 R 来绘制 function 的运行时结果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 的平均值。规则和不规则的虚线也是如此。

4

1 回答 1

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")

在此处输入图像描述

于 2013-07-04T16:31:45.563 回答