函数barplot()可以绘制条形图,其格式为
barplot(height)
height是一个向量或者矩阵,使用horiz=TRUE可以生成一个水平的条形图,
例子
1,用条形图统计分类变量的频数
注意条形图常用来统计分类变量每一钟元素的频数,此时可以运用table()进行处理分类变量,其可以统计分类变量的各个元素的频次。处理后的结果为table格式而barplot()可以识别table格式
table()函数可以统计列各种元素出现的次数

counts <- table(Arthritis$Improved)
counts
barplot(counts,xlab = "Improvement",ylab = "Frequency",main = "Simple Bar Ploy")

例子2
生成水平的条形图
barplot()参数horiz可以指定图形是否为水平的条形图
注意生成的水平的条形图时,x,y轴的名称不会跟着变换所以x,y轴的名称应同时跟着变换

barplot(counts,horiz = TRUE ,ylab = "Improvement",xlab = "Frequency",main = "Simple Bar Ploy")


例子3,使用plot()函数绘制条形图
如果像上面的例子那样,绘制的类别型变量是一个因子或有序因子,可以直接使用plot()函数快速创建条形图,这样就不用再通过table()函数进行处理变量。图片效果与例子1相同

plot(Arthritis$Improved,xlab = "Improvement",ylab = "Frequency",main = "Simple Bar Ploy")
#绘制水平的条形图
plot(Arthritis$Improved,horiz=TRUE,xlab = "Improvement",ylab = "Frequency",main = "Simple Bar Ploy")

例子3绘制堆砌条形图和分组条形图
如果height是一个矩阵而不是一个向量,则绘制结果将是一幅堆砌条形图或分组条形图
当beside=FALSE(默认值),则生成堆砌条形图–矩阵的每一列都将生成一个条形
当beside=TRUE,则生成分组条形图–矩阵中的每一列都表示一个分组,各列的中值将并列而不是堆砌
注意barplot()中的height要么是向量要么是矩阵,不能是data.frame但是可以是table格式

opar <- par(no.readonly = TRUE)
par(opar)
par(mfrow=c(1,2))
counts <- table(Arthritis$Improved,Arthritis$Treatment)
counts
#绘制堆砌条形图
barplot(counts,main = "Stacked Bar Plot",xlab = "Treatment",ylab="Frequency",col = c("red","yellow","green"),legend=row.names(counts))
#绘制分组条形图
barplot(counts,beside = TRUE,main = "Stacked Bar Plot",xlab = "Treatment",ylab="Frequency",col = c("red","yellow","green"),legend=row.names(counts))


例子4,使用数据整合函数 aggregate()并将结果传递给barplot()函数,来创建表示均值,中位数,标准值等条形图
能够如此作图的原因是因为我们可以向作图函数barplot()只传递一个数值向量,再通过参数names.arg指定横坐标的标签,(arg为英文自变量的含义)
这样我们我们输入各个分组后各组的平均值的值向量、在通过参数names.arg指定各组名称为横坐标标签就可以制作成一个条形图了

#使用数据整合函数aggregate()并将结果传递给barplot()函数,来创建表示均值,中位数,标准差等条形图
#生成要作图的数据框
states <- data.frame(state.region,state.x77)
#根据列state.region对列states$Illiteracy进行分组并求每组的均值。
#by = list(state.region)指定分组变量
#states$Illiteracy为被分组的变量
#FUN=mean是指定处理被分组的变量的函数
means <- aggregate(states$Illiteracy,by = list(state.region),FUN=mean)
#设定数值只能保留2位小数
options(digits = 2)
#barplot()函数可以输入没有索引的向量,但是这个时候就没有横坐标的标签,
#这时就需要通过names.arg参数指定(arg为自变量的意思)
par(opar)
barplot(means$x,names.arg = means$Group.1)
title("Mean Illiteracy Rate")


例子5,条形图的微调
cex.names参数调整字号
names.arg指定字符向量作为条形的标签图
las可以调整标签的参数,las=2为水平方向,las=0为垂直方向

par(mar=c(5,8,4,2))
#las调整标签的参数,2为水平,0为垂直
par(las=2)
library(vcd)
counts <- table(Arthritis$Improved)
barplot(counts,main = "Treatment Outcome",horiz = TRUE,#调整标签字体大小cex.names = 0.8,#修改标签文本names.arg = c("No Improvement","Some Improvement","Marked Improvement"))


例子6,棘状图
棘状图–棘状图对堆砌条形图进行了重缩放,这样让每列生成的条形图的高度均为1,换句话说它把每一列的数值替换为此数值在这一列数值总和的占比。
棘状图可以由vcd包中的函数spine()绘制

library(vcd)
attach(Arthritis)
counts <- table(Treatment,Improved)
spine(counts,main="Spinogram Example")


结束总结
能够制作条形图的函数有三个分别是barplot()函数,plot()函数和vcd包中的spine()函数
plot()函数可以直接输入分类变量,不用再通过table()处理分类变量把它变成含有分类变量各个元素频数的表格。
spine()函数可以生成棘状图
条形图可以绘制成水平的,但是此时应注意修改x轴坐标的名称
当需要绘制条形图的是一个数据框时此时会生成堆砌或者分组的条形图。生成什么样的条形图由参数beside决定,当beside=FALSE时生成堆砌的条形图(每一列的数值将堆砌在一个条形上),否则生成分组的条形图
当函数barplot()的参数height是一个数值向量时(只有数值不附带索引),此时可以通过names.arg参数指定x轴刻度的标签

R语言条形图的制作--barplot()相关推荐

  1. R语言用ggplot2制作火山图笔记

    R语言中用ggplot2制作火山图代码详解 ```{r} ##加载R包 library(ggplot2) library(ggrepel) ###加载数据 data <- allDiff ### ...

  2. 绘图杂记【3】Python / R语言 制作峰峦图

    先看一下 matplotlib画峰峦图的效果 学习地址:https://matplotlib.org/matplotblog/posts/create-ridgeplots-in-matplotlib ...

  3. R语言学习2-RMarkdown入门使用

    R语言有一个制作markdownd的工具RMarkdown,可以参考https://blog.csdn.net/lixiaomie01/article/details/78012942  进行安装和设 ...

  4. android 正态分布曲线图,逼迫学习1:R语言随机数、正态分布、密度曲线、QQ图

    我最近开了一个知识星球,美名其曰[数据小兵成长计划],每周或每月发布具体的学习计划,在星球内立帖为证,以学习成果为标志结束计划,学习过程如果遇到疑问,可以在星球内提问寻求帮助,直到完成. 我把它称之为 ...

  5. R语言ggplot2画图

    Content 1 r语言散点图 1.1 散点图 1.2 散点图阵 2 r语言直方图 2.1 规定柱子个数 bins = 60: 2.2不规定柱子个数,规定区间 binwidth = 5 3 R语言箱 ...

  6. R语言ggplot2可视化整体排序的水平堆叠条形图(Ordered Stacked Horizontal Barplot)

    R语言ggplot2可视化整体排序的水平堆叠条形图(Ordered Stacked Horizontal Barplot) 目录 R语言ggplot2可视化整体排序的水平堆叠条形图(Ordered S ...

  7. R语言ggplot2可视化:计算dataframe中每个数据列缺失值的个数、使用堆叠的条形图(Stacked Barplot)可视化每个数据列的缺失值的情况(自定义堆叠条形图的形式)

    R语言ggplot2可视化:计算dataframe中每个数据列缺失值的个数.使用堆叠的条形图(Stacked Barplot)可视化每个数据列的缺失值的情况(自定义堆叠条形图的形式) 目录

  8. R语言ggplot2可视化:使用堆叠的条形图(Stacked Barplot)可视化每个数据行(row)的缺失值的情况(Visualizing missing data counts in rows)

    R语言ggplot2可视化:使用堆叠的条形图(Stacked Barplot)可视化每个数据行(row)的缺失值的情况(Visualizing missing data counts in rows) ...

  9. 六 R语言barplot条形图之带误差棒的对称条形图及相关性分析结果分布

    今天继续进行基于barplot()命令的文章条形图仿制 原图展示 之前看过一篇利用肠道菌群进行疾病诊断的文章,其中涉及到一个图形,作者将筛选出的marker微生物的总丰度与肠道菌群的alpha多样性指 ...

最新文章

  1. angularjs post 跨域
  2. 台式您想使用系统还原计算机吗,联想台式机一键恢复,小编教你怎么使用联想电脑一键恢复...
  3. c语言 switch案例,C语言程序设计 2. switch语句的运用 案例 switch条件语句.docx
  4. js控制input框输入数字时,累计求和
  5. 如何扩展CentOS7的SWAP分区
  6. Tornado多进程启动的2种方法
  7. 数值分箱与one-hot
  8. 正确使用StereoRectify
  9. 实景三维的基石-osgb
  10. 2022年国内外大数据工程师薪资大比拼
  11. Mysql引擎之MyISAM引擎
  12. NAR:人类虚拟代谢数据库——整理人类和肠道菌群与营养和疾病
  13. 论文阅读笔记:Retinal blood vessel segmentation using fully convolutional network with transfer learning
  14. python的pptx文档remove_Python之pptx实现添加内容与删除(移动)页操作
  15. 这款小程序 能让你和孙悟空一样 可以七十二变
  16. Cannot deserialize instance of `java.util.ArrayList<java.lang.Object>` out of VALU
  17. Python学习记录——구 字符串
  18. 移民加拿大还是美国不得不做的比较
  19. 2022年武汉市首席技师、技术能手评选和技能大师工作室建设项目申报条件、流程
  20. Ansys中meshing启动时经常弹出“script error”

热门文章

  1. 深度学习论文阅读目标检测篇(三):Faster R-CNN《 Towards Real-Time Object Detection with Region Proposal Networks》
  2. linux电脑主机国产,免费linux主机面板推荐,国产比较优秀Linux免费云主机管理面...
  3. OpenGL 透视投影 齐次裁剪空间 深度缓存
  4. 信息安全——ELGamal数字签名方案的实现
  5. 了解如何使用 Mac 或 PC 同步音乐、影片(新系统不用iTunes)
  6. 用swoole实现简单IM聊天室demo
  7. MySQL sum()函数
  8. C# winform实现百度地图导航
  9. DIL中基本数据类型
  10. ArcGIS中的坐标系