【问题标题】:Plotting confidence intervals in ggplot在ggplot中绘制置信区间
【发布时间】:2013-10-25 21:48:25
【问题描述】:

我想用 ggplot 做下面的情节:

这是我的 df 结构的示例(有点,绘制不与数据按比例绘制):

example.df = data.frame(mean = c(0.3,0.8,0.4,0.65,0.28,0.91,0.35,0.61,0.32,0.94,0.1,0.9,0.13,0.85,0.7,1.3), 
                            std.dev = c(0.01,0.03,0.023,0.031,0.01,0.012,0.015,0.021,0.21,0.13,0.023,0.051,0.07,0.012,0.025,0.058),
                            class = c("1","2","1","2","1","2","1","2","1","2","1","2","1","2","1","2"),
                            group = c("group1","group2","group1","group2","group1","group2","group1","group2","group1","group2","group1","group2","group1","group2","group1","group2"))

此数据框由 16 个重复项组成,每个重复项具有给定的平均值和给定的标准差。

对于每个重复,我想绘制置信区间,其中我的图形示例中的大点是平均估计值,条形的长度是标准偏差的两倍。

我还想在同一行绘制两个不同的复制品,但颜色不同,按类别着色,红色是 1 类,蓝色是 2 类。

最后,我想将整个情节分成两个面板(在同一行),分别对应两个不同的组。

我尝试查看此站点,http://www.cookbook-r.com/Graphs/Plotting_means_and_error_bars_(ggplot2)/,但无法弄清楚如何针对此结构的任何数据框自动执行此操作,其中包含 X 个组(在本例中为 2),并且每个组复制 K 个(在本例 8、1 类 4 和 2 类 4)。

有没有使用 ggplot 或标准 r pkg 库的好方法?

【问题讨论】:

标签: r plot ggplot2


【解决方案1】:

我认为您提供的示例数据框没有以适当的方式构建,因为group1 中的所有值都有class1,而group2 中的所有值都是2 类。所以我创建了新的数据框,还添加了名为replicate 的新列,显示了复制的数量(每个group 中的四个复制(有两个class 值)。

example.df = data.frame(mean = c(0.3,0.8,0.4,0.65,0.28,0.91,0.35,0.61,0.32,0.94,0.1,
                                0.9,0.13,0.85,0.7,1.3), 
                        std.dev = c(0.01,0.03,0.023,0.031,0.01,0.012,0.015,0.021,0.21,
                                  0.13,0.023,0.051,0.07,0.012,0.025,0.058),
                        class = c("1","2","1","2","1","2","1","2","1","2","1",
                                 "2","1","2","1","2"),
                        group = rep(c("group1","group2"),each=8),
                        replicate=rep(rep(1:4,each=2),time=2))

现在您可以使用geom_pointrange() 获取具有置信区间的点,并使用facet_wrap() 为每个组绘制图表。

ggplot(example.df,aes(factor(replicate),
               y=mean,ymin=mean-2*std.dev,ymax=mean+2*std.dev,color=factor(class)))+
  geom_pointrange()+facet_wrap(~group)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 2015-09-14
    相关资源
    最近更新 更多