R语言绘图:条形图——barplot
R语言绘图:大道至简系列——barplot
目录
- R语言绘图:大道至简系列——barplot
- 前言
- 一、barplot参数简介
- 二、barplot参数详解
- 1.height,main,sub
- 2.width
- 3.space
- 4.names.arg
- 5.legend.text
- 6.beside
- 7.horiz
- 8.density,angle
- 9.col,border
- 10.xlab,ylab
- 11.xlim,ylim,xpd
- 12.log
- 13.axes
- 14.axisnames
- 15.cex.axis,cex.names
- 16.axis.lty
- 17.offset
- 18.ann
- 19.args.legend
- 20.data,subset,na.action,add
- 21.inside:
- 总结
前言
我知道,关于R语言的绘图教程满天飞,随便一搜一大堆,一方面我想打好基本功,另一方面,我想把这个做成一个系列,然后方便大家学习,整个系列可能不会有耳目一新的感觉,但我尽量多的运用帮助文档中的参数。
提示:以下是本篇文章正文内容,下面案例可供参考
一、barplot参数简介
条形图可垂直或水平展示分类变量的概率分布、频数分布或者百分比分布。
此篇教程分为一组observations的条形图和多组别observations的条形图。
参数详解:
1.height,main,sub:条形图的高度,也就是各观测发生的频数,可为向量或矩阵。main,sub为主标题和副标题。
2.width:条形图的条宽。若width向量的长度少于条形数,width会循环使用。若是一个数,则宽度不会变,因为相当于各个条形宽度还是1:1:1:1…,除非设置了xlim。
3.sapce:space为条形之间的空隙(空隙=平均条形宽 × sapce)。若height是矩阵,beside=TRUE,也即展示的是多组别observations的条形图时,space若为从c(m,n),m为组内的间隙,n为组间的间隙。
4.names.arg:height为向量时:names.arg为各条形命名。height为矩阵时:names.arg为各组命名。
5.legend.text:自动根据条形图顺序设置图例,且legend.text对应着图例的标签名,若legend.text为TRUE,则图例标签名对应与向量的names或矩阵的行名。
6.beside:TRUE or FALSE,当height为矩阵时,条形图时并列还是堆叠。
7.horize:是否水平放置。
8.density,angle:条形中填充斜线的密度及角度。
9.col,border:设置条形填充及边框颜色。
10.xlab,ylab:设置x,y轴标题。
11.xlim,ylim,xpd:设置横纵坐标轴限制,xpd:条形图是否能超出绘图范围。
12.log:‘x’,‘y’,‘xy’,定义x轴,y轴是否对数变换。
13.axes:logical,是否绘制频数对应的坐标轴。
14.axisnames:是否显示横坐标的名字。
15.cex.axis,cex.names:纵坐标标签大小,cex.names设置横坐标标签的大小。
16.axis.lty:横坐标坐标轴的直线形态,虚线?实线?。。。
17.offset:对指定的条形图中某个条形向上或向下位移。
18.ann: 是否展示(main, sub, xlab, ylab) 。
19.args.legend:值为列表,列表内包含legend()函数中的参数,可以对条形图的图例进行细节设置。
20.data,subset:数据集,数据集的子集。
21.na.action:对NA值进行的处理方式。
22.add:是否加入到别的图中。
23.inside此参数,目前还没发现有什么用!,按照帮助文档中的方法使用即可。
示例数据:
a <- c(1,2,3,4,3,2,1)
names(a) <- c('a','b','c','d','e','f','g')
b <- matrix(c(1,2,3,4,2,3,1,4,1),nrow = 3,,byrow = T)
colnames(b) <- c('c1','c2','c3')
rownames(b) <- c('r1','r2','r3')
#运行a,b查看数据
> a
a b c d e f g
1 2 3 4 3 2 1
> bc1 c2 c3
r1 1 2 3
r2 4 2 3
r3 1 4 1
二、barplot参数详解
1.height,main,sub
height即为数据来源,代表频数,可为向量或者矩阵。
main参数设置标题,sub设置副标题,在图最下方(后续不再介绍)
代码如下:
opar <- par(mfrow=c(1,2))
barplot(height = a,main = 'a',sub = '向量')
barplot(height = b,main = 'b',sub = '矩阵')
2.width
设置条形的宽度,可以发现设置单个值时不会改变宽度,除非设置xlim(此处为字符形式的横坐标,所以未进一步探索)
代码如下:
##设置图形布局
opar <- par(mfrow=c(2,2))barplot(height = a,main = 'width=c(0.5,1)',sub = 'a:向量',width = c(0.5,1))
barplot(height = a,main = 'width=0.5',sub = 'a:向量',width = 0.5)
barplot(height = a,main = 'width=1',sub = 'a:向量',width = 1)
barplot(height = b,main = 'width=c(0.5,1)',sub = 'b:矩阵',width = c(0.5,1))
3.space
若height为向量,space为条形左边的空隙(空隙=平均条形宽 × sapce)。若height是矩阵,beside=TRUE,也即展示的是多组别observations的条形图时,space若为c(m,n),则m为组内的间隙,n为组间的间隙。
代码如下:
##设置图形布局
opar <- par(mfrow=c(2,2))
barplot(height = a,main = 'space=c(0,1,2,3)',sub = 'a:向量',space = c(0,1,2,3))
barplot(height = a,main = 'space=1',sub = 'a:向量',space = 1)
barplot(height = b,main = 'space=c(0.5,3)',sub = 'b:矩阵',space = c(0.5,3),beside = T,col = c('red','lightblue','green') )
legend(legend = rownames(b),x = 15,y=4,fill = c('red','lightblue','green'),cex = 0.6,horiz = T)
barplot(height = b,main = 'space=c(3,0.5)',sub = 'b:矩阵',space = c(3,0.5),beside = T,col = c('red','lightblue','green') )
legend(legend = rownames(b),x = 20,y=4,fill = c('red','lightblue','green'),cex = 0.6,horiz = T)
4.names.arg
height为向量时:names.arg为各条形命名
height为矩阵时:names.arg为各组命名
代码如下:
opar <- par(mfrow=c(2,2))
barplot(height = a,main = 'names.arg = c(1,2,3,4,5,6,7)',sub = 'a:向量',names.arg = c(1,2,3,4,5,6,7))
barplot(height = a,main = 'names.arg = c(7,6,5,4,3,2,1)',sub = 'a:向量',names.arg = c(7,6,5,4,3,2,1))
barplot(height = b,main = 'names.arg = c(1,2,3)',sub = 'b:矩阵',beside = T,names.arg = c(1,2,3))
barplot(height = b,main = 'names.arg = c(3,2,1)',sub = 'b:矩阵',beside = T,names.arg = c(3,2,1))
5.legend.text
自动根据条形图顺序设置图例,且legend.text对应着图例的标签名,若legend.text为TRUE,则图例标签名对应与向量的names或矩阵的行名
代码如下:
opar <- par(mfrow=c(2,2))
barplot(height = a,main = 'legend.text = c(1,2,3,4,5,6,7)',sub = 'a:向量',col = c('red','yellow','blue','lightblue','green','orange','purple'),legend.text = c(1,2,3,4,5,6,7))
barplot(height = a,main = 'legend.text = T',sub = 'a:向量',legend.text = T)
barplot(height = b,main = 'legend.text = c(1,2,3)',col = c('red','yellow','blue'),sub = 'b:矩阵',beside = T,legend.text = c(1,2,3))
barplot(height = b,main = 'legend.text = T',sub = 'b:矩阵',beside = T,legend.text = T)
6.beside
是否堆叠
代码如下:
opar <- par(mfrow=c(1,2))
barplot(height = b,main = 'beside = F',sub = 'b:矩阵',beside = F,legend.text = T)
barplot(height = b,main = 'beside = T',sub = 'b:矩阵',beside = T,legend.text = T)
7.horiz
是否横置
代码如下:
opar <- par(mfrow=c(2,2))
barplot(height = a,main = 'horiz = F',sub = 'a:向量',horiz = F)
barplot(height = a,main = 'horiz = T',sub = 'a:向量',horiz = T)
barplot(height = b,main = 'horiz = F',sub = 'b:矩阵',horiz = F,legend.text = T)
barplot(height = b,main = 'horiz = T',sub = 'b:矩阵',horiz = T,legend.text = T)
8.density,angle
设置条形填充的斜线密度及角度
代码如下:
opar <- par(mfrow=c(1,1))
barplot(height = a,main = 'density = c(5,10,20,50,100,50,20) \n angle = c(0,30,60,90,120,150,180)',sub = 'a:向量',density = c(5,10,20,50,100,50,20),angle = c(0,30,60,90,120,150,180))
9.col,border
设置条形填充及边框颜色
代码如下:
opar <- par(mfrow=c(1,2))
barplot(height = a,main = "col = c('red','green','blue')",sub = 'a:向量',col = c('red','green','blue'))
barplot(height = a,main = "border = c('blue','green','red')",col = 'white',sub = 'a:向量',border = c('blue','green','red'))
10.xlab,ylab
设置x,y轴标题
代码如下:
opar <- par(mfrow=c(1,1))
barplot(height = a,main = "xlab = '类别'\nylab = '频数'",sub = 'a:向量',xlab = '类别',ylab = '频数')
11.xlim,ylim,xpd
设置横纵坐标轴限制,xpd:条形图是否能超出绘图范围
代码如下:
opar <- par(mfrow=c(1,3))
barplot(height = a,main = "xlim = c(0,5)\nylim = c(2,4)\nxpd = F",sub = 'a:向量',xlim = c(0,5),ylim = c(2,4),xpd = F)
barplot(height = a,main = "xlim = c(0,5)\nylim = c(2,4)\nxpd = T",sub = 'a:向量',xlim = c(0,5),ylim = c(2,4),xpd = T)
barplot(height = a,main = "默认参数")
12.log
x轴或者y轴是否行log转换
代码如下:
opar <- par(mfrow=c(2,2))
barplot(height = a,main = "log = 'y'",sub = 'a:向量',log = 'y')
barplot(height = a,main = "log = 'xy'",sub = 'a:向量',log = 'xy')
barplot(height = a,main = "默认参数",sub = 'a:向量')
barplot(height = a,main = "log = 'x'",sub = 'a:向量',log = 'x')
13.axes
axes:可控制纵坐标轴的显示
代码如下:
opar <- par(mfrow=c(1,2))
barplot(height = a,main = "axes = T",sub = 'a:向量',axes = T)
barplot(height = a,main = "axes = F",sub = 'a:向量',axes= F)
14.axisnames
设置:是否显示横坐标的名字
代码如下:
opar <- par(mfrow=c(1,2))
barplot(height = a,main = "axisnames = T",sub = 'a:向量',axisnames = T)
barplot(height = a,main = "axisnames = F",sub = 'a:向量',axisnames = F)
15.cex.axis,cex.names
cex.axis设置纵坐标标签大小,cex.names设置横坐标标签的大小。
代码如下:
opar <- par(mfrow=c(2,2))
barplot(height = a,main = "cex.axis = 1",sub = 'a:向量',cex.axis = 1)
barplot(height = a,main = "cex.axis = 2",sub = 'a:向量',cex.axis = 2)
barplot(height = a,main = "cex.names = 1",sub = 'a:向量',cex.names = 1)
barplot(height = a,main = "cex.names = 2",sub = 'a:向量',cex.names = 2)
16.axis.lty
横坐标坐标轴的直线形态
代码如下:
opar <- par(mfrow=c(2,2))
barplot(height = a,main = "axis.lty = 1",sub = 'a:向量',axis.lty = 1)
barplot(height = a,main = "axis.lty = 2",sub = 'a:向量',axis.lty = 2)
barplot(height = a,main = "axis.lty = 3",sub = 'a:向量',axis.lty = 3)
barplot(height = a,main = "axis.lty = 4",sub = 'a:向量',axis.lty = 4)
17.offset
对指定的条形图中某个条形向上或向下位移
代码如下:
barplot(height = a,main = "offset = c(-1,0,1,2,3,4,5)",sub = 'a:向量',offset = c(-1,0,1,2,3,4,5))
18.ann
ann设置条形图是否显示标题,副标题,x,y轴的轴标题
左图ann=F,可发现其没有上述四个内容
代码如下:
opar <- par(mfrow=c(1,2))
barplot(height = a,main = "ann = F",sub = 'a:向量',xlab = 'x',ylab = 'y',ann = F)
barplot(height = a,main = "ann = T",sub = 'a:向量',xlab = 'x',ylab = 'y',ann = T)
19.args.legend
args.legend:值为列表,列表内包含legend()函数中的参数,可以对条形图的图例进行细节设置
代码如下:
barplot(height = b,main = 'horiz = F',sub = 'b:矩阵',horiz = F,legend.text = T,args.legend = list(x=4,y=6,title='group'),xpd = T)
20.data,subset,na.action,add
以上参数不多赘述。
21.inside:
此参数,目前还没发现有什么用!按照帮助文档中的方法使用即可
总结
下一篇写直方图——hist()
实力有限,如有错误,欢迎大家批评指正。
R语言绘图:条形图——barplot相关推荐
- R语言绘图:28个实用程序包
本文转载自" 阿虎定量笔记",作者郑连虎,转载己获授权.其他人转载请联系原作者,点我跳转原文. 全文注释 # 示例参考帮助文档 # 我用Rstudio重现了所有示例 # 初识R语言 ...
- 收藏 | 28个R语言绘图的实用程序包!
作者:郑连虎 来源:阿虎定量笔记 本文约2500字,建议阅读20+分钟. 本文为大家介绍了关于R语言绘图方面28个实用程序包. cartogram 扭曲的地图,以传达统计信息 开发 Sebastian ...
- R语言ggplot2移除图例_读书笔记:R语言绘图—ggplot2
这次给大家带来的是R语言绘图神器-ggplot2绘图包,根据Hadley的说法,这个包的核心思想,是来源于 Leland Wilkinson<The Grammar of Graphics> ...
- R语言绘图、数据处理学习记录持续更新
目录 20220411--基础知识学习 20220412--读写操作和基本函数 20220415--循环语句学习 20220418--数据框的操作 20220419--可视化练习 20230107-- ...
- (生物信息学)R语言绘图初-中-高级——3-10分文章必备——Venn图(韦恩图)(初级)
生物信息学文章的发表要求除了思路和热点以外,图片绘制是否精美也是十分重要的,本专栏为(生物信息学)R语言绘图初-中-高级--3-10分文章必备,主要通过大量文献,总结3-10分文章中高频出现的各种图片 ...
- R极简教程-10:R语言绘图基础
R语言最强大的一点就是画图,那个无比强大的画图系统,再加上各种各样的神级R包,让我写R语言中最喜欢的一点就是写绘图代码. 简单来说,R语言原生的绘图系统已经非常强大了,根本不需要其他东西的辅助,就可以 ...
- R语言绘图:实用脑科学数据可视化包
文章来源于微信公众号(茗创科技),欢迎有兴趣的朋友搜索关注 导读 本文整理了R语言绘图中使用频率较高的程序包,每个程序包都附载相应的参考来源链接(链接里有实现绘图的脚本)和下载链接.另:茗创科技为大家 ...
- R语言ggplot2条形图(bar plot)可视化:更改一个条形(bar)的颜色、突出一个条形(bar)的颜色
R语言ggplot2条形图(bar plot)可视化:更改一个条形(bar)的颜色.突出一个条形(bar)的颜色 目录
- R语言绘图设备dev
R语言绘图设备打开: - 调用绘图函数(默认使用屏幕) => 屏幕设备显示图形 => 进一步修饰图形 - 明确指定图形设备[bmp(),tiff(),jpeg(),png()] => ...
最新文章
- 重磅!联合国权威AI趋势报告,美中日韩四分天下
- leetcode 38. 外观数列 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下
- UA MATH565C 随机微分方程V Markov Family的特征函数
- centos 7安装
- 稳扎稳打Silverlight(8) - 2.0图形之基类System.Windows.Shapes.Shape
- 体验最火的敏捷-SCRUM!(网络直播课程 免费)
- C#操作注册表增删改查及关机能保存问题
- 信息学奥赛一本通(1151:素数个数)
- js模拟3D场景效果
- springmvc 监听器getWriter() has already been called for this response问题
- 在 ASP.NET MVC 中创建自定义 HtmlHelper
- 【语音识别】语音端点检测及Python实现
- ftp文件推送 linux_Linux 终端访问 FTP 及 上传下载 文件
- linux配置串口驱动程序,[Linux 驱动] -- Linux 驱动之串口(UART)
- linux 谷歌浏览器设置代理_Linux用谷歌浏览器模拟手机访问
- 虚拟机下 centos7 网络间歇性断网
- 万物互联时代,Check Point开启网络安全新未来
- 最新流行的网页网络游戏(九龙朝、傲剑、战千雄、诛神、传承)
- echarts 桑基图 添加标志线问题
- 计算机网络原理【第四章 网络层】课后习题答案
热门文章
- CSS绘制渐变黑白背景栏
- 【Face Recognition人脸识别】4. 多张图片人脸识别
- 2017CCPC中南地区赛暨湘潭大学邀请赛总结
- 【Windows】win7虚拟机安装VMware Tools
- vmware win7虚拟机运行异常卡顿问题解决
- [C语言]成绩与平均分问题:编写函数ReadScore()和Average(),输入某班学生某门课的成绩(最多不超过40人),当输入为负值时,表示输入结束,用函数编程统计成绩高于平均分的学生人数。
- 和女友做完后.......她说.....
- 从会种田到“慧种田”,传感技术成“刚需”!
- vue与nodejs
- win10商店打不开_win10 64位系统打不开美图秀秀是啥原因呢