R语言绘制带误差线的条形图
条形统计图是用一个单位长度表示一定的数量,根据数量的多少画成长短不同的直条.带误差的条形图可以通过误差线来判断显著性。
继续使用我们的汽车销售数据(公众号回复:汽车销售,可以获得该数据)来演示,先导入数据
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语言绘制带误差线的条形图相关推荐
- matlab 条形图误差线,数据可视化系列:手把手教你绘制带误差线的条形图
原标题:数据可视化系列:手把手教你绘制带误差线的条形图 条形图可以用于展示数据不同分类下的均值.中位数.标准差和置信区间等,Excel可以实现,但对于带误差线的条形图而言,还是比较麻烦的.R语言的基础 ...
- R - ggplot绘制带误差线的柱状图
ggplot绘制带误差线的柱状图 利用ggplot2 数据格式转换并做统计计算 绘制图形 ## 模拟 ## 导入包 library(ggplot2) library(reshape2) library ...
- python绘制带误差线的条形图
绘制格式: plt.bar(index, values, yerr = std, error_kw = {'ecolor' : '0.2', 'capsize' :6}, alpha=0.7) yer ...
- R 语言绘制带组的圆形条形图
圆形条形图是一种条形图,其中条形图沿圆形而不是线显示.本页旨在教您如何制作带有组的圆形条形图. 第一步是建立一个圆形的条形图,圆圈中有一个中断.实际上,我只是在初始数据框的末尾添加了几行空行: # l ...
- R语言绘制带聚类树的堆叠柱形图
R语言绘制带聚类树的堆叠柱形图 聚类树与柱形图结合,即可反映样本或分组间的相似性,又能展示样本内的元素组成信息. 例如下图是一个在扩增子测序微生物群落分析中常见的统计图类型,在测序公司给的报告中通常都 ...
- Matlab绘制带误差线的柱状图
Matlab可绘制带误差线的柱状图(需下载barweb (BARgraph With Error Bars) - File Exchange - MATLAB Central并设置路径),成图如下所示 ...
- Python绘制带误差线的图形 Python plots with error bands
If you want to plot a function curve with multiple parameters with errors, one way to visualize the ...
- R语言绘制股票K线图
首先解释一下K线图的含义:首先我们找到该日或某一周期的最高和最低价,垂直地连成一条直线:然后再找出当日或某一周期的开市和收市价,把这二个价位连接成一条狭长的长方柱体.假如当日或某一周期的收市价较开市价 ...
- Python+Matplotlib绘制带误差线的柱状图
推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月第1次印刷,2021年12月第11次印刷,山东省一流 ...
最新文章
- iOS多线程编程之多线程简单介绍(转载)
- 前端rem单位的正确使用姿势(转)
- html实现静态下来菜单js,JS代码实现静态导航菜单效果要用何主要代码?
- 音视频技术开发周刊 | 181
- qt执行linux sudo命令语句,linux命令_sudo
- 手机屏大字滚动_LG 滑动伸缩手机专利公布
- Java程序实现密钥库的维护
- Markdown标题、行首缩进、换行。csdn(1)
- hdu 1054 Strategic Game
- SSM(SpringBoot+SpringMVC+Mybatis):班委信息管理附有GIF动图,博主可免费答疑
- 计算机思维导论在线测试题库,计算机导论题库有答案.docx
- 汤家凤高等数学2020年基础课手写笔记汇总
- 162-SOP8液晶手写板专用IC
- 深信服:Weblogic集群负载均衡技术解决方案
- java sort 没法用,$ group无法使用Spring聚合类后的$ sort管道
- java实战小结-Controller报错:Content type ‘multipart/form-data;boundary=----WebKitFormBoundaryxxxx not supp
- 阿里云的DMZ区网络
- 看到大一的PS作业,忍不住想吐槽!!
- 高德地图不显示定位点
- 用Html+css写一个渐变背景的个人名片