如何用R中的x,y数据绘制条形图和误差条

时间:2016-03-08 12:58:32

标签: r plot errorbar

我有以下格式的数据。

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处。

2 个答案:

答案 0 :(得分:0)

我会尝试回答。我正在使用名为 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))

我明白了:

enter image description here

答案 1 :(得分:0)

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

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是您尝试以示例形式阅读示例时获得的平均值+/-错误的标题名称。