Barplot/pie/boxplot作图详解——R语言
当数据以简单的可视化的形式呈现时,数据便更具有意义并且更容易理解,因为人眼很难从原始数据中得出重要的信息。因此,数据可视化成为了解读数据最重要的方式之一。条形图和箱线图是了解变量分布的最常用的图形工具,这两种图在数据比较方面(比较统计学)也可以发挥很大的作用,在数据分析中的使用频率很高。
一、条形图barplot
柱状图(条形图)是一类非常重要的统计图表,在数据分析中的使用频率很高,今天我们就来一起看看在R语言中如何绘制柱状图,本文基本上涵盖了我在数据分析项目中绘制柱状图的全部需求,希望能够帮助大家一次性“搞定”柱状图。
绘制条形图十分简单,barplot()函数的使用方法如下:
barplot(height, width = 1, space = NULL,
names.arg = NULL, legend.text = NULL, beside = FALSE,
horiz = FALSE, density = NULL, angle = 45,
col = NULL, border = par("fg"),
main = NULL, sub = NULL, xlab = NULL, ylab = NULL,
xlim = NULL, ylim = NULL, xpd = TRUE, log = "",
axes = TRUE, axisnames = TRUE,
cex.axis = par("cex.axis"), cex.names = par("cex.axis"),
inside = TRUE, plot = TRUE, axis.lty = 0, offset = 0,
add = FALSE, ann = !add && par("ann"), args.legend = NULL, ...)
#它们的书写顺序不一定要按照上面给出的顺序,可以自己随便写一个顺序,参数也不一定要写全。
参数说明
| 参数 | 说明 |
|---|---|
| h | 在条形图中使用的数值的向量或矩阵 |
| names.arg | 每个条下出现的名称的向量 |
| xlab | x轴的标签 |
| ylab | y轴的标签 |
| main | 条形图的标题 |
| col | 条形图的颜色 |
| border | 条形图边框的颜色 |
h<-c(1,2,3,4,5,5)
M<-c("MAR","APR","JUN","JUL","AGU","JAN")
barplot(h,names.arg= M,xlab="Month",ylab = "Rain",col="blue",main="Rain chart",border = "red")

barplot(height = matrix(1:6, ncol = 3, nrow = 2), # 绘图数据(矩阵)
names.arg = c('男', '女', '未知'), # 柱子名称
family = 'Kai', # 中文字体
col = c('orange', 'steelblue'), # 填充颜色
border = '#ffffff') # 轮廓颜色

二、饼图pie——结构图
饼图在商业世界中无所不在,然而多数统计学家,包括相应R文档的编写者却都对它持否定态度。相对于饼图,他们更推荐使用条形图或点图,因为相对于面积,人们对长度的判断更精确。也许由于这个原因,R中饼图的选项与其他统计软件相比十分有限,不过饼图在表示结构数据上具有天然的优势。
pie(x, labels = names(x), edges = 200, radius = 0.8,
clockwise = FALSE, init.angle = if(clockwise) 90 else 0,
density = NULL, angle = 45, col = NULL, border = NULL,
lty = NULL, main = NULL, ...)
参数的描述
| 参数 | 说明 |
|---|---|
| x | 饼图中使用的数值的向量 |
| labels | 给出切片的描述 |
| radius | 饼图圆的半径(值-1和+1之间) |
| main | 图表的标题 |
| col | 颜色调色板 |
| clockwise | 片段是顺时针还是逆时针绘制的逻辑值 |
| density | 底纹的密度,默认为NULL |
x <- c(12,32,14,23,15,32)
#建立颜色向量z
z <- c('green','gray','yellow','blue','red','orange')
#绘制饼图m
m <- pie(x,main='问题:调查结果统计',density =80,angle=30,col=z,radius=1.05)

# Create data for the graph.
x <- c(21, 62, 10,53)
labels <- c("London","New York","Singapore","Mumbai")
piepercent<- round(100*x/sum(x), 1)
# Plot the chart.
pie(x, labels = piepercent, main = "City pie chart",col = rainbow(length(x)))
legend("topright", c("London","New York","Singapore","Mumbai"), cex = 0.8,
fill = rainbow(length(x)))

三、箱线图boxplot
箱线图(Box plot)也称箱须图(Box-whisker Plot)、箱线图、盒图,可以用来反映一组或多组连续型定量数据分布的中心位置和散布范围,因形状如箱子而得名。1977年,美国著名数学家John W. Tukey首先在他的著作《Exploratory Data Analysis》中介绍了箱形图。箱线图(又称盒须图)通过绘制连续型变量的五数总括,即最小值、下四分位数(第25百分位数)、中位数(第50百分位数)、上四分位数(第75百分位数)以及最大值,描述了连续型变量的分布。

R语言中绘制箱线图函数的函数用法为:
boxplot(formula, data = NULL, ..., subset, na.action = NULL,xlab = mklab(y_var = horizontal),ylab = mklab(y_var =!horizontal), add = FALSE, ann = !add, horizontal = FALSE,drop = FALSE, sep = ".", lex.order = FALSE)
R语言中绘制箱线图函数的默认用法为:
boxplot(x, ..., range = 1.5, width = NULL, varwidth = FALSE,notch = FALSE, outline = TRUE, names, plot = TRUE,border = par("fg"), col = NULL, log = "",pars = list(boxwex = 0.8, staplewex = 0.5, outwex = 0.5), ann = !add, horizontal = FALSE, add = FALSE, at = NULL) Arguments
| 参数 | 说明 |
|---|---|
| x | 向量,列表或数据框 |
| formula | 公式,形如y~grp,其中y为向量,grp是数据的分组,通常为因子 |
| width | 箱体的相对宽度 |
| plot | 是否绘制箱线图还是显示相关信息 |
| main | 标题 |
| xlab,ylab | X轴标题,Y轴标题 |
dev.off()
par(mfrow=c(3,3))
boxplot(mpg ~ cyl, data=mtcars)
boxplot(mpg ~ cyl, data=mtcars,
width = c(1,2,3)) #箱体的相对宽度
boxplot(mpg ~ cyl, data=mtcars,
width = c(1,2,3),notch = TRUE) #含凹槽的箱线图
boxplot(mpg ~ cyl, data=mtcars,
names = c("a","b","c")) #修改下方标签名字
boxplot(mpg ~ cyl, data=mtcars,
plot = FALSE) #显示信息,但是不绘制图
boxplot(mpg ~ cyl, data=mtcars,
col = "red") #箱体颜色
boxplot(mpg ~ cyl, data=mtcars,
border = "red") #箱体边框颜色
boxplot(mpg ~ cyl, data=mtcars,
main = "标题")
boxplot(mpg ~ cyl, data=mtcars,
xlab = "XX")
boxplot(mpg ~ cyl, data=mtcars,
ylab = "YY")

总结
条形图和箱线图是最常用的两类图形,用以观察数据的整体分布。箱形图包含数学统计量,不仅能够分析不同类别数据各层次水平差异,还能揭示数据间离散程度、异常值、分布差异等等。

参考文献
R语言:使用barplot()绘制柱状图(条形图)
语言-箱线图-boxplot()
试验研究中的利器--强大的直方图和箱线图
Barplot/pie/boxplot作图详解——R语言的更多相关文章
- Rserve详解,R语言客户端RSclient【转】
R语言服务器程序 Rserve详解 http://blog.fens.me/r-rserve-server/ Rserve的R语言客户端RSclient https://blog.csdn.net/u ...
- ggplot2作图详解:入门函数qplot
ggplot2作图详解:入门函数qplot ggplot2的功能不用我们做广告,因为它的作者Hadley Wickham就说ggplot2是一个强大的作图工具,它可以让你不受现有图形类型的限制,创 ...
- 详解Go语言调度循环源码实现
转载请声明出处哦~,本篇文章发布于luozhiyun的博客: https://www.luozhiyun.com/archives/448 本文使用的go的源码15.7 概述 提到"调度&q ...
- 详解go语言的array和slice 【二】
上一篇已经讲解过,array和slice的一些基本用法,使用array和slice时需要注意的地方,特别是slice需要注意的地方比较多.上一篇的最后讲解到创建新的slice时使用第三个索引来限制sl ...
- 详解 Go 语言中的 time.Duration 类型
swardsman详解 Go 语言中的 time.Duration 类型swardsman · 2018-03-17 23:10:54 · 5448 次点击 · 预计阅读时间 5 分钟 · 31分钟之 ...
- ggplot2作图详解7(完):主题(theme)设置
凡是和数据无关的图形设置内容理论上都可以归为主题类,但考虑到一些内容(如坐标轴)的特殊性,可以允许例外的情况.主题的设置相当繁琐,很容易就占用了 大量的作图时间,应尽量把这些东西简化,把注意力主要放在 ...
- 详解Go语言中的屏蔽现象
在刚开始学习Go语言的过程中,难免会遇到一些问题,尤其是从其他语言转向Go开发的人员,面对语法及其内部实现的差异,在使用Go开发时也避免不了会踩"坑".本文主要针对Go设计中的屏蔽 ...
- 详解Go语言I/O多路复用netpoller模型
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 本文使用的go的源码15.7 可以从 Go 源码目录结构和对应代码文件了解 Go 在不同 ...
- 机器学习|线性回归算法详解 (Python 语言描述)
原文地址 ? 传送门 线性回归 线性回归是一种较为简单,但十分重要的机器学习方法.掌握线性的原理及求解方法,是深入了解线性回归的基本要求.除此之外,线性回归也是监督学习回归部分的基石. 线性回归介绍 ...
- 详解C语言的类型转换
1.自动类型转换 字符型变量的值实质上是一个8位的整数值,因此取值范围一般是-128-127,char型变量也可以加修饰符unsigned,则unsigned char 型变量的取值范围是0-255( ...
随机推荐
- Linux使用NAT/VMnet8(NAT)模式配置网卡ping通外网/主机/百度
vmnat 配置好后无法ping通打开共享 vmnet8 nat网卡配置 主机网卡配置 去掉网关
- 一招彻底解决——双系统下windows时间错误显示
双系统下windows与ubuntu系统时间不同步 我的笔电是windows系统,工作需要安装了ubuntu,于是成为双系统,于是从18年我就遇到了装了ubuntu系统之后windows时间显示错误的 ...
- linux 中安装、更新和卸载软件
1.Aptitude aptitude 与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具. 与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些. ...
- Error:fatal: no such path /web/controller/XXXController.java in HEAD. 报错!
现象: Error:fatal: no such path /test/XXXController.java in HEAD. 报错! 原因: 重命名文件夹大小写问题: 解决办法: git mv Te ...
- Unity学习笔记——坐标转换(1)
1.Center与Pivot的区别 Pivot是模型坐标轴的真实位置,将辅助图标定位在网格的实际轴心点. Center是模型渲染边界的中心. 当包含子物体时,Pivaot模式辅助图标在物体的实际轴心点 ...
- uc 小游戏接入经验
使用引擎,egret 相关资料: https://blog.csdn.net/weixin_42276579/article/details/107379544 https://minigame.uc ...
- 转载·Charles4.2.8 开启macOS Proxy ,MacOS10.15 Catalina版本提示APP权限为只读
转载地址:https://superuser.com/questions/1490116/charles-4-2-8-cannot-configure-your-proxy-settings-whil ...
- Float浮动、 CSS定位(position)
Float浮动. CSS定位(position)1.CSS定位机制(1)普通流(标准流)-默认状态,元素自动从左往右,从上往下的排列(2)浮动-会使元素向左或向右移动,只能左右,不能上下-浮动元素碰到 ...
- jmeter工具2个打开方法+配置黑窗口启动jmeter工具。
实现从cmd黑窗口,输入jmeter,即可弹出jmeter工具界面.方法一:直接去安装在的目录,找jmeter_5.4.bat文件,双击即可打开工具. 方法二: 在环境变量中,配置JMETER_HOM ...
- 《Unix/Linux系统编程》第十二周学习笔记
<Unix/Linux系统编程>第十二周学习笔记 MySQL数据库简介 MySQL是一个关系型数据库管理系统,是最流行的关系型数据库管理系统之一.在 WEB 应用方面,MySQL 是最好的 ...