【问题标题】:Line graph in R with minimum and maximum of dataset at each datapointR中的折线图,每个数据点的数据集的最小值和最大值
【发布时间】:2013-07-02 16:53:36
【问题描述】:

我想使用 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 的平均值。规则虚线和不规则虚线相同。

【问题讨论】:

标签: r


【解决方案1】:

我推荐阅读 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")

【讨论】:

  • “errorbar”这个词立即让我意识到我在寻找什么。谢谢。
猜你喜欢
  • 2013-06-05
  • 1970-01-01
  • 2021-08-02
  • 1970-01-01
  • 2020-12-23
  • 1970-01-01
  • 2015-05-30
  • 2017-03-22
  • 2021-08-18
相关资源
最近更新 更多