【问题标题】:Plotting data in R在 R 中绘制数据
【发布时间】:2014-01-29 13:00:08
【问题描述】:

我的数据代表了我想使用 R 绘制的已进行实验的结果。我对 R 保持着新的认识,而且我的信息有限。对于使用不同数量的示例的每种实验方法,我的数据成对存储(平均值和标准差)。例如:

  Method A      Method B        Method C
  Mean  StDv    Mean    StDv    Mean    StDv
1 54.113,   3.469,  51.039, 0.774,  96.257, 1.861
2 55.432,   3.78,   51.921, 1.109,  90.705, 1.284
3 57.047,   3.673,  52.397, 1.054,  90.616, 1.122
4 58.338,   3.919,  53.152, 1.348,  91.024, 0.811

其中 'Mean' 和 "StDv' 分别是均值和标准差。另外,第一列 (1, 2, 3, 4) 代表实验数据的大小。换句话说,当数据为2,第一种方法得分55.432±3.78,第二种方法得分51.921±1.109,依此类推。

我所追求的图是将数据大小(第一列)的值作为 x 轴的标签,而 y 轴的值清楚地表示性能(0-100 之间)这是平均(或表中的平均值)得分值。此外,我想将标准偏差添加到图中作为误差线。我不介意情节是条形图还是折线图都可以。

【问题讨论】:

    标签: r plot ggplot2 bar-chart


    【解决方案1】:

    关于您的具体问题:

    您需要将您的数据格式化为 data.frame,其中包含列大小、均值、stdv 和方法(reshape2 中的 melt 应该可以帮助您)。然后你可以像下面这样运行代码:

    p <- ggplot(data, aes(x=size, y=mean, fill=method))
    p <- p + geom_bar(position=position_dodge(), stat="identity")
    p <- p + geom_errorbar(aes(ymin=mean-stdv , ymax=mean+stdv), width=.2, position=position_dodge(.9))
    print(p)
    

    有关选项和详细信息,这些链接应该可以帮助您:

    http://www.cookbook-r.com/Graphs/Plotting_means_and_error_bars_(ggplot2)/#bar-graphs

    Placement of error bars in barplot using ggplot2

    【讨论】:

    • 我认为您应该将此作为评论。答案应提供更多详细信息,可能带有相关代码,以便答案独立。链接页面可能会在不被注意的情况下离线,从而使答案无用。
    • 谢谢你们,但我仍然不确定如何使用平均列为每个数据大小点的每个方法绘制一个条形图。以下命令绘制第一种方法的值,包括标准偏差作为误差条和平滑。 qplot(size,M1_M, data=ds)+geom_smooth(aes(ymin=M1_M-M1_S, ymax=M1_M+M1_S), stat="identity") +geom_errorbar(aes(size, ymin=M1_M-M1_S, ymax=M1_M +M1_S), 宽度=0.1)
    • 你看到我的新帖子了吗?请说明您是否在重新调整数据时遇到问题(即变成具有四列大小、平均值、标准差、方法的长格式),或者您在运行绘图代码时遇到问题。
    • 谢谢CMicheal,其实我不知道怎么用这个“reshape2”,以后值得一读。另外,您提出的解决方案我知道,但我希望在更改数据形状之前有另一种方法。再次感谢您提出宝贵的工作建议。
    • 一般来说,我会说使用ggplot2,如果不调整您的数据格式,将很难进行绘图。如果您想保留您的数据结构,您可能需要查看lattice
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    • 2019-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多