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( ...
随机推荐
- kafka工具的使用-发送数据
1.了解推送数据的是哪个topic,选择对应topic下面的partition分区 2.右侧界面选择Data,并点击『+』号: 3.可选择添加单个消息『add Single Message』或者添加多 ...
- C# core 最简单的方式写入日志
System.IO.StreamWriter sw = System.IO.File.AppendText( LogPath + LogFielPrefix + "Error-" ...
- 实验8 python库应用编程与体验
3.实验任务3 from turtle import * def square(size=50, rgb='orange'): '''绘制正方形 参数size指定边长 参数rgb指定画笔颜色 如果没有 ...
- nrm ls报错及npm镜像站点测速、切换
报错截图: 解决方法: 1.win键,搜索powershell,点击"以管理员身份运行" 2.粘贴下面命令,回车,敲y,回车 set-ExecutionPolicy RemoteS ...
- [fiddler的使用]添加常用字段(请求耗时,客户端请求时间,IP地址)
1. /* 显示请求耗时 */ function BeginRequestTime(oS: Session) { if (oS.Timers != null) { return oS.Timers.C ...
- 什么是Vuex
Vuex是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间数据的共享. 优点: 能够在Vuex中集中管理共享的数居,易于开发和后期维护 能够高效地实现组件之间的数据共享,提高开发效率 存 ...
- 面向对象ooDay9
精华笔记: 多态:多种形态 同一个对象被造型为不同的类型时,有不同的功能-------所有对象都是多态的(明天总结详细讲) 对象的多态:水.我.你...... 同一类型的引用在指向不同的对象时,有不同 ...
- ZFBJ - 1 - 42 - NO.1
- WPF dxe:ComboBoxEdit 选择项后并可编辑值
有个需要,在ComboBoxEdit中选择多个值,并且要求可以直接在后面添加新的值. 开始的时候绑定列表,设置DisplayMember,不能修改. 然后绑定List<string>,不设 ...
- springboot项目导出excel实现
参见:https://blog.csdn.net/duli_0105/article/details/102809936