我的编程空间,编程开发者的网络收藏夹
学习永远不晚

R语言利用barplot()制作条形图的各种实例

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

R语言利用barplot()制作条形图的各种实例

前言

函数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()制作条形图的文章就介绍到这了,更多相关R语言barplot()条形图内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

R语言利用barplot()制作条形图的各种实例

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

R语言怎么利用barplot()制作条形图的各种实例

本篇内容介绍了“R语言怎么利用barplot()制作条形图的各种实例”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言函数barplot()
2023-06-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录