R语言基础画图/绘图/作图

R语言基础画图

R语言免费且开源,其强大和自由的画图功能,深受广大学生和可视化工作人员喜爱,这篇文章对如何使用R语言作基本的图形,如直方图,点图,饼状图以及箱线图进行简单介绍。

0 结构

每种图形构成一个section,每个部分大致三部分构成,分别是R语言标准画图代码,R语言画图实例,和画图结果。
R语言标准画图代码帮助你可以直接使用:help(funciton)查找,实例数据基本都来自内置包的数据,好了,直接切入主图,从最简单的点图开始吧。

1 点图

点图,简单的讲就是每个数据点按照其对应的横纵坐标位置对应在坐标系中的图形,什么是点图就不做过多介绍了。

  • 点图标准代码
 dotchart(x, labels = NULL, groups = NULL, gdata = NULL,cex = par("cex"), pt.cex = cex,pch = 21, gpch = 21, bg = par("bg"),color = par("fg"), gcolor = par("fg"), lcolor = "gray",xlim = range(x[is.finite(x)]),main = NULL, xlab = NULL, ylab = NULL, ...)      

x是数据来源,也就是要作图的数据;labels 是数据标签,groups分组或分类方式,gdata分组的值,cex字体大小,pch是作图线条类型,bg背景,color颜色,xlim横坐标范围,main是图形标题,xlab横坐标标签,相应的ylab是纵坐标。


- 实例
eg1.1:

dotchart(mtcars$mpg,labels = row.names(mtcars),cex = .7,main = "Gas Mileage for Car Models",xlab = "Miles Per gallon")

mtcar是内置包中的一个数据,将mtcar中每加仑油的里程(mpg,miles per gallon)作为要描述的对象,用点图展现出来,将行名作为点图标签,字体大小是正常大小的0.7,标题“Gas Mileage for Car Models”,x轴标签”Miles Per gallon”。
运行结果(run 或者Ctrl + Enter快捷键)如图所示:


这里写图片描述
散点图1.1

eg1.2:
现在觉得这个图太散乱了,希望这个图能够经过排序,想要按照油缸数(cyl)进行分组并且用不同的颜显示。(注:#是R语言中的行注释,并且只有行注释,运行时系统会自动跳过#后面的内容)

x <- mtcars[order(mtcars$mpg),]        #按照mpg排序
x$cyl <-factor(x$cyl)      #将cyl变成因子数据结构类型
x$color[x$cyl==4] <-"red"   #新建一个color变量,油缸数cyl不同,颜色不同
x$color[x$cyl==6] <-"blue"
x$color[x$cyl==8] <-"darkgreen"
dotchart(x$mpg,        #数据对象labels = row.names(x),     #标签cex = .7,#字体大小groups = x$cyl,      #按照cyl分组gcolor = "black",    #分组颜色color = x$color,     #数据点颜色pch = 19,#点类型main = "Gas Mileage for car modes \n grouped by cylinder",    #标题xlab = "miles per gallon")     #x轴标签

run后结果如下:


这里写图片描述
散点图1.2

是不是好看多了,嘻嘻!按照油缸数不同进行了分类,并且可以看出油缸数量越多越耗油。

2 直方图

2.1 直方图

小学生都知道的条形图,怎么弄?

  • 条形图标准代码:
barplot(height, ...)

是太简单了吗?这么粗暴,就给了一个变量。

  • 实例
    eg2.1.1
library(vcd)
counts <- table(Arthritis$Improved)    #引入vcd包只是想要Arthritis中的数据
barplot(counts,main = "bar plot",xlab = "improved",ylab = "counts")

结果2.1.1:


这里写图片描述
条形图2.1.1

eg2.1.2

barplot(counts,main = " horizontal bar plot",
xlab = "frequency",
ylab = "improved",
horiz = TRUE)#horizon 值默认是FALSE,为TRUE的时候表示图形变为水平的

图形结果:


这里写图片描述
条形图2.1.2

eg2.1.3 进阶
数据来源:vcd包中的Arthritis,风湿性关节炎研究结果数据,如果没有安装vcd包,需要先安装,install.packages("vcd"),然后用library引用包vcd,

install.packages("vcd")
library(vcd)
counts <- table(Arthritis$Improved,Arthritis$Treatment)
counts

数据如下所示:

PlaceboTreated
None29
Some7
Marked7

代码:
eg 2.1.3.1

barplot(counts,main = " stacked bar plot",xlab = "treated",ylab = "frequency",col = c("red","yellow","green"),       #设置颜色legend = rownames(counts))       #设置图例

结果2.1.3.1:


这里写图片描述
2.1.3.1堆砌条形图

  • 代码
    eg2.1.3.2
barplot(counts,main = " grouped bar plot",xlab = "treated",ylab = "frequency",col = c("red","yellow","green"),legend = rownames(counts),beside = TRUE)

结果2.1.3.2


这里写图片描述
分组条形图2.1.3.2

请注意,两幅图的区别在于2.1.3.2设置了beside = TRUE,beside默认值是FALSE,绘图结果是堆砌条形图,beside值为TRUE时,结果是分组条形图。

2.2**荆棘图**

荆棘图是对堆砌条形图的扩展,每个条形图高度都是1,因此高度就表示其比例。
- 实例
代码
eg2.2:

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

结果:


这里写图片描述
荆棘图2.2

3 直方图

  • 直方图标准代码:
hist(x, ...)

也是简单地可以哈?
- 实例
我们使用par设置图形参数,用mfrow将四幅图放在一起。
代码
eg3.1:

par (mfrow = c(2,2))        #设置四幅图片一起显示
hist(mtcars$mpg)       #基本直方图hist(mtcars$mpg,breaks = 12,       #指定组数col= "red",        #指定颜色xlab = "Miles per Gallon",main = "colored histogram with 12 bins")hist(mtcars$mpg,freq = FALSE,      #表示不按照频数绘图breaks = 12,col = "red",xlab = "Miles per Gallon",main = "Histogram,rug plot,density curve")
rug(jitter(mtcars$mpg))        #添加轴须图
lines(density(mtcars$mpg),col= "blue",lwd=2)       #添加密度曲线x <-mtcars$mpg
h <-hist(x,breaks = 12,col = "red",xlab = "Miles per Gallon",main = "Histogram with normal and box")
xfit <- seq(min(x),max(x),length=40)
yfit <-dnorm(xfit,mean = mean(x),sd=sd(x))
yfit <- yfit *diff(h$mids[1:2])*length(x)
lines(xfit,yfit,col="blue",lwd=2)       #添加正太分布密度曲线
box()               #添加方框

结果:


这里写图片描述
直方图3.1

4 饼图

  • 标准饼图代码:
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, ...)
  • 实例
    eg4.1
par(mfrow = c(2,2))
slices <- c(10,12,4,16,8)       #数据
lbls <- c("US","UK","Australis","Germany","France")         #标签数据
pie(slices,lbls)        #基本饼图pct <- round(slices/sum(slices)*100)        #数据比例
lbls2 <- paste(lbls," ",pct ,"%",sep = "")
pie(slices,labels = lbls2,col = rainbow(length(lbls2)),         #rainbow是一个彩虹色调色板main = "Pie Chart with Percentages")library(plotrix)
pie3D(slices,labels=lbls,explode=0.1,main="3D pie chart")       #三维饼图mytable <- table (state.region)
lbls3 <- paste(names(mytable),"\n",mytable,sep = "")
pie(mytable,labels = lbls3,main = "pie  chart from a table \n (with sample sizes")

结果:


这里写图片描述
4.1 饼状图

5 箱线图

5.1 箱线图

  • 标准箱线图代码:
boxplot(x, ...)
  • 实例
    eg5.1
boxplot(mtcars$mpg,main="Box plot",ylab ="Miles per Gallon")       #标准箱线图boxplot(mpg ~ cyl,data= mtcars,main="car milesge data",xlab= "Number of cylinders",ylab= "Miles per Gallon")boxplot(mpg ~ cyl,data= mtcars,notch=TRUE,         #含有凹槽的箱线图varwidth = TRUE,        #宽度和样本大小成正比col= "red",main="car milesge data",xlab= "Number of cylinders",ylab= "Miles per Gallon")mtcars$cyl.f<- factor(mtcars$cyl,         #转换成因子结构levels= c(4,6,8),labels = c("4","6","8"))
mtcars$am.f <- factor(mtcars$am,levels = c(0,1),labels = c("auto","standard"))
boxplot(mpg~ am.f*cyl.f,       #分组的箱线图data = mtcars,varwidth=TRUE,col= c("gold","darkgreen"),main= "MPG Distribution by Auto Type",xlab="Auto Type",ylxb="Miles per Gallon")

结果:


这里写图片描述
5.1 箱线图

5.2 小提琴图

小提琴图是箱线图和密度图的结合。使用vioplot包中的vioplot函数进行绘图。

  • 小提琴图标准代码:
vioplot( x, ..., range=1.5, h, ylim, names, horizontal=FALSE, col="magenta", border="black", lty=1, lwd=1, rectCol="black", colMed="white", pchMed=19, at, add=FALSE, wex=1, drawRect=TRUE)
  • 实例
    代码:
    eg5.2
library(vioplot)
x1 <- mtcars$mpg[mtcars$cyl==4]
x2 <- mtcars$mpg[mtcars$cyl==6]
x3 <- mtcars$mpg[mtcars$cyl==8]
vioplot(x1,x2,x3,names= c("4 cyl","6 cyl","8 cyl"),col = "gold")
title(main="Violin plots of Miles Per Gallon",xlab = "number of cylinders",ylab = "Miles per gallon")

结果:

这里写图片描述
5.2 小提琴图

白点是中位数,中间细线表示须,粗线对应上下四分位点,外部形状是其分布核密度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/51135.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言ggplot2绘图

R语言绘图之ggplot2 一.绘图的基本要素1.图形映射2.分面&#xff1a;3.添加平滑曲线 二.绘制条形图设置坐标抽格式 一.绘图的基本要素 首先载入tidyverse包 install.packages("tidyverse") library(tidyverse)​​​​这一行代码加载了tidyverse的核心R包。在几乎所…

R语言---ggplot绘图

散点图 堆积柱形图 library(ggplot2)ggplot(mtcars,aes(mpg,wt))geom_point()簇状柱形图 library(ggplot2) ggplot(mtcars,aes(factor(cyl),fillfactor(am)))geom_bar()直方图 密度图 library(ggplot) ggplot(mtcars,aes(factor(cyl),fillfactor(am)))geom_bar(position&qu…

R语言绘图基础

目录 一、R语言的基本绘图函数 1、高级绘图函数 &#xff08;1&#xff09;plot函数 &#xff08;2&#xff09;其他高级绘图函数 2、低级绘图函数 二、图形参数与图形控制 1、绘图参数 2、图形控制 3、图形颜色 &#xff08;1&#xff09;颜色名称 &#xff08;2&#…

R语言绘图

画图例子 R Graph Cookbook例子 From&#xff1a;http://www.dataguru.cn/article-1766-1.html 今天突然找到一本专门教授R语言绘图的书&#xff0c;R Graph Cookbook&#xff0c;发现还不错。当初喜欢上R语言就是因为它绘图特别好看。下面把这本书的内容&#xff0c;经过我学…

小米手机通用面具安装,root获取

小米手机通用面具安装,root获取 第一篇 环境准备,解锁手机 小米手机,红米手机通用面具安装方法 一 材料准备 电脑一部,没有的朋友可以去网吧小米或红米手机一部,需登录账号7天以上,可以解锁数据线一条,需要能传数据 二 解锁手机 小米有专门的解锁工具,我就不将其下载下来另存…

ADB的安装和使用教程,小米手机连接adb实例演示

首先我们需要下载 adb 的程序包&#xff0c;只要 1M 就好了。也可以通过安装 android sdk 等工具间接安装&#xff0c;可以自行百度。 小蓝枣的资源仓库&#xff0c;提取码: p8h1 adb 的安装 步骤一&#xff1a; 下载后找个位置把它解压一下。 步骤二&#xff1a; 然后把压缩…

android开发:小米手机开发时非要sim卡才能调试怎么办?

问题&#xff1a; 公司新的测试机是小米2s&#xff0c;但是到了安装调试包时&#xff0c;总是安装失败&#xff0c;不管是打开开发者模式&#xff0c;还是启动或者禁止mui优化功能&#xff0c;都一直出现安装不可用&#xff0c;后来往上查了下&#xff0c;是因为小米系统包稳定…

Mobile - 小米手机如何开通应用分身?应用多开?

有时候办公需要使用多个账号&#xff0c;切换多个应用不停地切换很麻烦&#xff0c;那么&#xff0c;怎么让应用多开&#xff0c;同时在一部手机上使用多个相同的应用呢&#xff1f; 工具 / 原料 小米手机 方法 / 步骤 首先打开小米手机的“设置”&#xff0c;向下滑动&#…

小米手机开发者选项打开usb安装需要SIM卡解决办法

前言 最近在做一些安卓的开发&#xff0c;想用之前用过的小米8做测试 但是打开usb调试的usb安装之后却显示需要插入SIM卡 搜索了一下原因&#xff0c;可能是防止黄牛买来装一大堆第三方APP上去然后打包二次销售&#xff0c;影响消费者 解决办法 不用特意去办一张卡&#x…

MIUI 强制跳过 关闭 打开 小米手机 USB安装 USB安全 USB安全设置 应用确认

MIUI 强制跳过 关闭 打开 小米手机 USB安装 USB安全 USB安全设置 应用确认 一、背景和结论 众所周知&#xff0c;小米手机开启 USB 安装功能&#xff0c;需要插入 SIM 卡登陆、需要登小米账号。我这台手机已root&#xff0c;懒得登陆了&#xff0c;就准备通过修改文件的方式来…

小米手机安装 Charles 证书

1、准备工作 首先电脑安装 Charles&#xff08;这个不教&#xff09;&#xff1b; 准备一台小米手机&#xff08;自备&#xff0c;不送&#xff09;&#xff1b; 2、charles 设置代理端口 打开 Charles 的 Proxy > Proxy Settings…&#xff1b;设置代理端口为&#xff1…

小米手机 samba_神仙手机软件!每个都是手机之必备APP!!

大家好,我是越越热爱不止,分享继续,感谢观看。 1.随手存盒 随手存盒是一款可以帮助用户快速找到想要的文件。 它可以一键查看各个平台接收的文件内容,相当于一个文件中转站,并且可以实现不同平台之间的自由传送; 其次此款软件还附带了“电脑管理文件+快传”功能,在同一…

论文的开题报告是什么样的?

马上就要到毕业季了&#xff0c;许多小伙伴开始着手写论文&#xff0c;但在此之前要先把开题报告搞定才行。其实开题报告相比论文而言要简单很多&#xff0c;但对于从未写过开题报告的同学却不知道从哪里下手。下面就为大家介绍一下一份完整的开题报告到底长什么样子&#xff0…

毕业设计的开题报告怎么写?

本文将事无巨细地为你介绍毕业论文开题报告的写法&#xff0c;让你看完就有灵感&#xff0c;能立马上手写出一篇开题报告来&#xff0c;建议点赞收藏哦。 首先&#xff0c;你得知道为什么要写开题报告。开题报告就像是你论文写作的导航软件&#xff0c;帮你确认论文的起点、途径…

论文开题报告的研究基础怎么写?

紧张又充实的大学生活即将结束&#xff0c;大学生们又开始做毕业设计了&#xff0c;而做毕业设计之前指导老师都会要求先写好开题报告&#xff0c;想必大家像我一样在写开题报告时就会有疑惑了&#xff1a;“哎&#xff0c;什么是研究基础&#xff0c;这个怎么写啊?” 不急&am…

开题报告中拟解决的主要问题怎么写?

在研究生求学阶段&#xff0c;学位论文质量的高低是衡量研究生培养质量的重要标志&#xff0c;而论文质量的高低&#xff0c;很大程度上取决于论文开题报告的内容的细致程度。从论文的选题&#xff0c;到研究内容与措施的探讨及最后开题报告的撰写&#xff0c;三者环环相扣&…

开题报告里的基本内容写什么,预期效果又怎么写?

是不是在找开题报告的模板&#xff1f;逮住就别走啦&#xff0c;这一篇帮你一网打尽&#xff01; 一定教会你一个晚上搞定你的开题报告&#xff01; 不仅如此&#xff0c;这篇看完&#xff0c;对于你未来整个论文初稿也会提供一些准确的思路哦~ 多说无益&#xff0c;快来一起…

2225年,人类可以通过脑机永生?

文|佘凯文 来源|智能相对论&#xff08;aixdlun&#xff09; 2019年以来几部与人工智能有关的动画电影可谓火得不行&#xff0c;先是卡梅隆担任制片的《战斗天使&#xff1a;阿丽塔》&#xff0c;之后则是Netflix的自制系列动画《爱、死亡和机器人》&#xff0c;在这些影片中…

人工智能革命:人类会永生还是灭亡(中)

为什么未来会是我们最大的希望 当我了解人工智能的世界时&#xff0c;我发现有很多人站在这里&#xff1a; 在自信角落里面的人们兴奋地嗡嗡作响。他们把目光投向了平衡木的乐趣的一面&#xff0c;他们确信这就是我们所有人的目标。对他们来说&#xff0c;未来就是他们所希望的…

基因编辑技术:能让人类永生下去?

图&#xff1a;有争议的哈佛大学研究人员丘奇称猪器官将可以用于人体器官移植&#xff0c;利用脑移植治疗老年痴呆症 凤凰网科技讯据《每日邮报》北京时间 7 月 5 日报道&#xff0c;未来有一天&#xff0c;人类将利用猪培养用于人体器官移植的器官&#xff0c;利用脑移植治疗帕…