Boxplot schmoxplot:如何绘制由 R 中的一个因素决定的均值和标准误差?
我们都喜欢中位数和四分位距等稳健的衡量标准,但让我们面对现实吧,在许多领域,箱线图几乎从未出现在已发表的文章中,而均值和标准误差却一直如此。
在lattice、ggplot2等中绘制箱线图很简单,画廊里到处都是。是否有一种同样简单的方法来绘制以分类变量为条件的平均值和标准误差?
我正在考虑这样的情节:
http://freakonomics.blogs.nytimes.com/2008/07/30/how-big-is-your-halo-a-guest-post/
或者所谓的“意味着钻石” " 在 JMP 中(参见图 3):
http://blogs.sas.com/jmp/index.php?/archives/127-What-Good-Are-Error-Bars.html
We all love robust measures like medians and interquartile ranges, but lets face it, in many fields, boxplots almost never show up in published articles, while means and standard errors do so all the time.
It's simple in lattice, ggplot2, etc to draw boxplots and the galleries are full of them. Is there an equally straightforward way to draw means and standard errors, conditioned by a categorical variable?
I'm taking about plots like these:
http://freakonomics.blogs.nytimes.com/2008/07/30/how-big-is-your-halo-a-guest-post/
Or what are called "means diamonds" in JMP (see Figure 3):
http://blogs.sas.com/jmp/index.php?/archives/127-What-Good-Are-Error-Bars.html
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
第一个图刚刚在 imachordata.com 上的博客文章中介绍。 (向 David Smith 致敬在 blog.revolution-computing.com 上)您还可以阅读 Hadley 的相关文档在 ggplot2 上。
这是示例代码:
它最终看起来像这样:
The first plot was just covered in a blog post on imachordata.com. (hat tip to David Smith on blog.revolution-computing.com) You can also read the related documentation from Hadley on ggplot2.
Here's the example code:
It ends up looking like this:
这个问题已经有近 2 年的历史了,但是作为实验领域的新 R 用户,这对我来说是一个大问题,并且这个页面在 google 结果中很突出。我刚刚发现了一个比当前集合更喜欢的答案,所以我想我会添加它。
sciplot 包使任务变得非常简单。它通过一个命令完成工作,
生成这个非常可行的图表,其中大部分是默认选项。请注意,默认情况下,误差线是标准误差,但参数采用函数,因此它们可以是您想要的任何值!
This question is almost 2 years old now, but as a new R user in an experimental field, this was a big question for me, and this page is prominent in google results. I just discovered an answer I like better than the current set, so I thought I'd add it.
the package sciplot makes the task super easy. It gets the job done in a single command
produces this very workable graph with mostly default options. Note that the error bars are standard errors by default, but the parameter takes a function, so they can be anything you want!
虽然来得有点晚,但这个解决方案可能对未来的用户有用。它使用加载 R 的
diamond
data.frame,并利用stat_summary
以及两个(超短)自定义函数。Coming a little late to the game, but this solution might be useful for future users. It uses the
diamond
data.frame loaded with R and takes advantage ofstat_summary
along with two (super short) custom functions.使用 ggplot2 可以轻松自动计算平均值及其标准误差。我建议使用默认点范围,而不是炸药图。您可能必须手动提供该位置。操作方法如下:
Means and their standard errors are easily automatically computed using
ggplot2
. I would recommend using the default pointranges, instead of dynamite plots. You might have to provide the position manually. Here is how:ggplot 生成美观的图表,但我还没有勇气尝试发布任何 ggplot 输出。
直到那一天到来之前,这就是我制作上述图表的方法。我使用名为“gplots”的图形包来获取标准误差线(使用我已经计算过的数据)。请注意,此代码为每个类别/类别提供了两个或多个因素。这需要将数据作为矩阵输入,并使用“barplot2”函数中的“beside=TRUE”命令来防止条形图堆叠。
从审美上来说,它相当简单——简,但似乎是大多数期刊/老教授想要看到的。
我将发布这些示例数据生成的图表,但这是我在该网站上的第一篇文章。对不起。人们应该能够毫无问题地复制粘贴整个内容(在安装“gplots”包之后)。
ggplot produces aesthetically pleasing graphs, but I don't have the gumption to try and publish any ggplot output yet.
Until the day comes, here is how I have been making the aforementioned graphs. I use a graphics package called 'gplots' in order to get the standard error bars (using data I've calculated already). Note that this code provides for two or more factors for each class/category. This requires the data to go in as a matrix and for the "beside=TRUE" command in the "barplot2" function to keep the bars from being stacked.
It is pretty plain-Jane, aesthetically, but seems to be what most journals/old professors want to see.
I'd post the graph produced by these example data, but this is my first post on the site. Sorry. One should be able to copy-paste the whole thing (after installing the "gplots" package) without problem.