条形统计图是用一个单位长度表示一定的数量,根据数量的多少画成长短不同的直条.带误差的条形图可以通过误差线来判断显著性。

继续使用我们的汽车销售数据(公众号回复:汽车销售,可以获得该数据)来演示,先导入数据

library(foreign)
library(ggplot2)
library(tidyverse)
bc <- read.spss("E:/r/test/tree_car.sav",use.value.labels=F, to.data.frame=T)
names(bc)


我们来看下数据,car就是汽车售价,age是年龄,gender是性别,inccat是收入,这里分成4个等级,ed是教育程度。
假设我们想知道不同教育水平的男女在买汽车的价格上有什么不同,可绘制带误差和可信区间的折线图,关键就是要算出它的标准误se和95%ci.
我们先生成一个计算标准误se和95%ci的自定义函数,这是国外一位大佬设计的函数,我见好用直接搬运过来了。

summarySE <- function(data=NULL, measurevar, groupvars=NULL, na.rm=FALSE,conf.interval=.95, .drop=TRUE) {library(plyr)# New version of length which can handle NA's: if na.rm==T, don't count themlength2 <- function (x, na.rm=FALSE) {if (na.rm) sum(!is.na(x))else       length(x)}# This does the summary. For each group's data frame, return a vector with# N, mean, and sddatac <- ddply(data, groupvars, .drop=.drop,.fun = function(xx, col) {c(N    = length2(xx[[col]], na.rm=na.rm),mean = mean   (xx[[col]], na.rm=na.rm),sd   = sd     (xx[[col]], na.rm=na.rm))},measurevar)# Rename the "mean" column    datac <- rename(datac, c("mean" = measurevar))datac$se <- datac$sd / sqrt(datac$N)  # Calculate standard error of the mean# Confidence interval multiplier for standard error# Calculate t-statistic for confidence interval: # e.g., if conf.interval is .95, use .975 (above/below), and use df=N-1ciMult <- qt(conf.interval/2 + .5, datac$N-1)datac$ci <- datac$se * ciMultreturn(datac)
}

生成函数后,我们使用自定义函数summarySE生成标准误se和95%ci. Measurevar填入你要衡量比较的指标,这里填入汽车售价,groupvars这里填入性别和教育程度。

carss<- summarySE(bc, measurevar="car", groupvars=c("gender","ed"))

生成了我们需要的做图数据

画条形图和画折线图不同的是,教育这个指标我们要转换成分类变量

carss$ed <- factor(carss$ed)

转换好以后就可以做图了,先做一个带误差线的

ggplot(carss, aes(x=ed, y=car, fill=gender)) + geom_bar(position=position_dodge(), stat="identity") +geom_errorbar(aes(ymin=car-se, ymax=car+se),width=.2,                    # Width of the error barsposition=position_dodge(.9))


画个带置信区间的

ggplot(carss, aes(x=ed, y=car, fill=gender)) + geom_bar(position=position_dodge(), stat="identity") +geom_errorbar(aes(ymin=car-ci, ymax=car+ci),width=.2,                    # Width of the error barsposition=position_dodge(.9))


进行美化一下,一个可以用于发表的图就做成了

如何利用置信区间来判断显著性


(图片来自于淼科学网博客。https://blog.sciencenet.cn/blog-430956-717889.html)

R语言绘制带误差线的条形图相关推荐

  1. matlab 条形图误差线,数据可视化系列:手把手教你绘制带误差线的条形图

    原标题:数据可视化系列:手把手教你绘制带误差线的条形图 条形图可以用于展示数据不同分类下的均值.中位数.标准差和置信区间等,Excel可以实现,但对于带误差线的条形图而言,还是比较麻烦的.R语言的基础 ...

  2. R - ggplot绘制带误差线的柱状图

    ggplot绘制带误差线的柱状图 利用ggplot2 数据格式转换并做统计计算 绘制图形 ## 模拟 ## 导入包 library(ggplot2) library(reshape2) library ...

  3. python绘制带误差线的条形图

    绘制格式: plt.bar(index, values, yerr = std, error_kw = {'ecolor' : '0.2', 'capsize' :6}, alpha=0.7) yer ...

  4. R 语言绘制带组的圆形条形图

    圆形条形图是一种条形图,其中条形图沿圆形而不是线显示.本页旨在教您如何制作带有组的圆形条形图. 第一步是建立一个圆形的条形图,圆圈中有一个中断.实际上,我只是在初始数据框的末尾添加了几行空行: # l ...

  5. R语言绘制带聚类树的堆叠柱形图

    R语言绘制带聚类树的堆叠柱形图 聚类树与柱形图结合,即可反映样本或分组间的相似性,又能展示样本内的元素组成信息. 例如下图是一个在扩增子测序微生物群落分析中常见的统计图类型,在测序公司给的报告中通常都 ...

  6. Matlab绘制带误差线的柱状图

    Matlab可绘制带误差线的柱状图(需下载barweb (BARgraph With Error Bars) - File Exchange - MATLAB Central并设置路径),成图如下所示 ...

  7. Python绘制带误差线的图形 Python plots with error bands

    If you want to plot a function curve with multiple parameters with errors, one way to visualize the ...

  8. R语言绘制股票K线图

    首先解释一下K线图的含义:首先我们找到该日或某一周期的最高和最低价,垂直地连成一条直线:然后再找出当日或某一周期的开市和收市价,把这二个价位连接成一条狭长的长方柱体.假如当日或某一周期的收市价较开市价 ...

  9. Python+Matplotlib绘制带误差线的柱状图

    推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月第1次印刷,2021年12月第11次印刷,山东省一流 ...

最新文章

  1. iOS多线程编程之多线程简单介绍(转载)
  2. 前端rem单位的正确使用姿势(转)
  3. html实现静态下来菜单js,JS代码实现静态导航菜单效果要用何主要代码?
  4. 音视频技术开发周刊 | 181
  5. qt执行linux sudo命令语句,linux命令_sudo
  6. 手机屏大字滚动_LG 滑动伸缩手机专利公布
  7. Java程序实现密钥库的维护
  8. Markdown标题、行首缩进、换行。csdn(1)
  9. hdu 1054 Strategic Game
  10. SSM(SpringBoot+SpringMVC+Mybatis):班委信息管理附有GIF动图,博主可免费答疑
  11. 计算机思维导论在线测试题库,计算机导论题库有答案.docx
  12. 汤家凤高等数学2020年基础课手写笔记汇总
  13. 162-SOP8液晶手写板专用IC
  14. 深信服:Weblogic集群负载均衡技术解决方案
  15. java sort 没法用,$ group无法使用Spring聚合类后的$ sort管道
  16. java实战小结-Controller报错:Content type ‘multipart/form-data;boundary=----WebKitFormBoundaryxxxx not supp
  17. 阿里云的DMZ区网络
  18. 看到大一的PS作业,忍不住想吐槽!!
  19. 高德地图不显示定位点
  20. 用Html+css写一个渐变背景的个人名片

热门文章

  1. 教育类app开发难点总结
  2. jdk8 stream去重复_重复文件查找和清理工具
  3. echarts绘制回归曲线
  4. python自动回复微信群的消息_程序员用python实现微信消息群发和微信自动回复
  5. Latex的参考文献引用
  6. IDF 2011北京看到的某平板
  7. 从一个例子理解多态(附代码解释)
  8. VDI(远程桌面)是什么?
  9. 在字符串中找出连续最长的英文字符串
  10. 自动化神器啊,Python 批量读取身份证信息写入 Excel