【问题标题】:How to plot bar plot and error bar with x,y data in R如何在 R 中使用 x,y 数据绘制条形图和误差线
【发布时间】:2016-03-08 12:58:31
【问题描述】:

我有以下格式的数据。

X        ID         Mean       Mean+Error Mean-Error
61322107 cg09959428 0.39158198 0.39733463 0.38582934
61322255 cg17147820 0.30742542 0.31572314 0.29912770
61322742 cg08922201 0.47443355 0.47973039 0.46913671
61322922 cg08360511 0.06614797 0.06750279 0.06479315
61323029 cg00998427 0.05625839 0.05779519 0.05472160
61323113 cg15492820 0.10606674 0.10830587 0.10382761
61323284 cg02950427 0.36187007 0.36727818 0.35646196
61323413 cg01996653 0.35582920 0.36276991 0.34888849
61323667 cg14161454 0.77930230 0.78821970 0.77038491
61324205 cg25149253 0.93585347 0.93948514 0.93222180

如何绘制带有列(条)的误差线图 enter image description here

其中 X 轴具有 X 值。因此,每个条将绘制在固定宽度的 X 处。

【问题讨论】:

标签: r plot errorbar


【解决方案1】:

我会尝试回答。我正在使用一个名为 plotly 的包。您可以查看here 了解更多详情。

df <- read.csv('test.csv')
colnames(df) <- c("x", "id", "mean", "mean+error", "mean-error")
df$`mean+error` = df$`mean+error` - df$mean
df$`mean-error` = df$mean - df$`mean-error`

library(plotly)

p <- ggplot(df, aes(factor(x), y = mean)) + geom_bar(stat = "identity")
p <- plotly_build(p)

length(p$data)

p$layout$xaxis

plot_ly(df, x = 1:10, y = mean, type = "bar",  
        error_y = list(symmetric = F, 
                       array = df$`mean+error`,
                       arrayminus = df$`mean-error`,
                       type = "data")) %>% 
  layout(xaxis = list(tickmode = "array",tickvals = 1:10,ticktext = df$x))

我明白了:

【讨论】:

    【解决方案2】:

    最流行的方法可能是在ggplot2 中使用geom_errorbar()

    library("ggplot2")
    ggplot(df, aes(x=ID, y = Mean)) + 
      geom_bar(stat="identity", fill="light blue") +
      geom_errorbar(aes(ymin = Mean.Error, ymax = Mean.Error.1))
    

    其中Mean.ErrorMean.Error.1 是当您尝试将示例读取为文本时得到的均值+/- 错误的标题名称。

    【讨论】:

    • ggplot2 我可以实现,但问题是我有其他系列,如线图和散点图,由于它们不是网格图,因此难以合并(布局)到该图中。
    • @prog 添加 +geom_line() 或 geom_scatter 应该没什么大不了的。但这不是你的问题。您应该接受其中一个答案,然后尝试添加其他 geom 并问另一个问题,您仍然有问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-13
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    相关资源
    最近更新 更多