完整R语言实战前三章图形初阶运行代码.docx
- 文档编号:14030539
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:15
- 大小:19.49KB
完整R语言实战前三章图形初阶运行代码.docx
《完整R语言实战前三章图形初阶运行代码.docx》由会员分享,可在线阅读,更多相关《完整R语言实战前三章图形初阶运行代码.docx(15页珍藏版)》请在冰点文库上搜索。
完整R语言实战前三章图形初阶运行代码
#管理R工作空间的函数
getwd()#显示当前的工作目录
setwd(“mydirectory“)#修改当前的的工作目录为mydirectory
ls()#列出当前工作空间中的对象
rm(objectlist)#移除(删除)一个或多个对象
help(options)#显示或设置当前选项
history(#)#显示最近使用过的#个命令(默认值为25)
savehistory(“mylife“)#保存命令历史到文件mylife中(默认值为.Rhistory)
loadhistory(“mylife“)#载入一个命令历史文件
save.image(“mylife“)#保存工作空间到文件mylife中(默认值为.RData)
save(objectlist,file=“mylife“)#保存指定对象到一个文件中
load(“mylife“)#读取一个工作空间到当前会话中(默认值为.RData)
q()#退出R,将会询问你是否保存工作空间
##保存图形输出的函数
bmp(“filename.bmp“)
jpeg(“filename.jpeg“)
pdf(“filename.pdf“)
png(“filename.png“)
postscript(“filename.ps“)
svg(“filename.svg“)
win.metafile(“filename.wmf“)
libPaths()#显示库所在的位置
library()#显示库中有哪些包
############################################################################
数据的输入
#1、使用键盘输入
{
mydata<-data.frame(age=numeric(0),gender=character(0),weight=numeric(0))mydata<-edit(mydata)
}
#等价于
fix(mydata)
#直接在程序中嵌入数据集
mydatatxt<-“
agegenderweight
25m166
30f115
18f120
“
{mydata<-read.table(header=T,text=mydatatxt)
mydata}
#2、从带分隔符的文本文件导入数据
#mydataframe<-read.table(file,options)
#函数read.table()的选项
#header表示是文件是否在第一行包含了变量名的逻辑型变量
#sep分开数据的分隔符。
默认是sep=““,表示一个或多个空格、制表符、换行或回车。
#sep=“,“,读取逗号分隔行内数据的文件。
sep=“\t“,读取制表符分隔行内数据的文件
#row.names用于指定一个或多个行标记符
#col.namesheader=FALSE时,可以用col.names去指定一个包含变量名的字符向量。
#如果header=FALSE以及col.names选项被省略,变量名为V1,V2#na.strings用于表示缺失值的字符向量。
#na.strings=c(“-9“,“?
“)把-9和?
值在读取数据时转换成NA
#colClassescolClasses=c(“numeric“,“numeric”,“character“,“NULL“,“numeric“)#quote用于对有特殊字符的字符串划定界限的字符串
#skip
#stringsAsFactors逻辑变量,标记处字符向量是否需要转化成因子。
默认值时TRUE,除非它被colClasses所覆盖。
#处理大型文本文件时,设置成stringsAsFactors=FALSE可以提升处理速度。
#3、导入excel数据
{
library(xlsx)
workbook<-“c:
/myworkbook.xlsx“
mydataframe<-read.xlsx(workbook,1)
}
#4、导入XML数据
library(XML)
#5、从网页抓取数据
#readLines()将网页上的文字下载到一个R的字符向量中
#grep()
#gsup()
#RCurl
#XML
#6、导入SPSS数据
#foreign包中的函数read.spss()
{
install.packages(“Hmisc“)
library(Hmisc)
mydataframe<-spss.get(“mydata.sav“,use..value.labels=TRUE#让函数将带有值标签的变量导入为R中水平对应相同的因子)
}
#7、导入SAS数据
#foreign包中的read.ssd()
#Hmisc包中的sas.get()安装了SAS情况下的好的选择
#sas7bdat包中的read.sas7bdat()
#8、导入Stata数据
{
library(foreign)
mydataframe<-read.dta(“mydata.dta“)
}
#9、导入NetCDF数据
#ncdf包
#ncdf4包
#10、导入HDF5数据
#rhdf5包
#11、访问数据库管理系统
{
install.packages(“RODBC“)
library(RODBC)
}
#RODBC中的函数
#odbcConnect(dsn,uid=““,pwd=““)#建立一个到ODBC数据库的连接
#sqlFetch(channel,sqltable)#读取ODBC数据库中的某个表到数据框中
#sqlQuery(channel,quuery)#向ODBC数据库提交一个查询并返回结果
##sqlSave(channel,mydf,tablename=sqltable,append=FALSE)#将数据框写入或更新到ODBC数据库的某个表中
#sqlDrop(channel,sqtable)#删除ODBC数据库中的某个表
#close(channel)#关闭连接
#####
#处理数据对象的实用函数
#length()
#dim()
#str()#显示某个对象的结构
#class()#显示某个对象的类型
#mode()#显示对象的模式
##names()
#cbind()#按列合并对象rbind()
#head()#列出对象的开始部分tail()#列出对象的最后部分
#ls()#显示当前的对象列表
#rm(object,object,...)#删除一个或多个对象rm(list=ls())#删除当前工作环境中的几乎所有对象
#newobject<-edit(object)#编辑对象并另存为newobject
fix()#直接编辑对象
##################################################################图形参数
#pch=0#绘图符号0~25
#cex=1#绘图符号大小。
1.5放大为默认值的1.5倍
#lty=1#线条类型1~6
#lwd=1#线条宽度,默认为1,=2生成的线条宽度为默认宽度的2倍
#用于指定颜色的参数
#col=c(“red“,“blue“)#linespie可以接受含有颜色值的向量并自动循环
#col.axis#坐标轴刻度文字的颜色
#col.lab坐标轴标签颜色
#col.main
#col.sub
#fg#图形前景色
#bg#图形的背景色
#颜色向量函数:
rainbow(),heat.colors(),terrain.colors(),topo.colors(),cm.colors().
#RColorBrewer包
{
library(RColorBrewer)
n<-7
mycolors<-brewer.pal(n,“Set1“)
mycolors
barplot(rep(1,n),col=mycolors)
}
#若要得到所有可选调色板的列表,输入:
brewer.pal.info,或者输入:
display.brewer.all()#多阶灰度色使用gray()
{
n<-10
mycolors<-rainbow(n)
mycolors
pie(rep(1,n),labels=mycolors,col=mycolors)
#生成10阶灰度色
mygrays
pie(rep(1,n),labels=mygrays,col=mygrays)
}
#文本属性
#指定文本大小的参数
#cex
#cex.axis坐标轴刻度文字的缩放倍数cex.labcex.maincex.sub
#指定字体族、字号、字样的参数
#font字体样式。
1=常规,2=粗体,3=斜体,4=粗斜体,5=符号字体
#font。
axisfont.labfont.mainfont.sub
#ps字体磅值。
文本的最终大小为ps*cex
#family绘制文本时使用的字体族。
标准的取值为serif(衬线),sans(无衬线),mono(等宽)
#举例说明
par(font.lab=3,cex.lab=1.5,font.main=4,cex.main=2)
windowsFonts(
A=windowsFont(“ArialBlack“)
B=windowsFont(“BookkmanOldStyle“)
C=windowsFont(“ComicSansMS“))
#图形尺寸和边界大小的参数
#pin以英寸表示的图形尺寸(宽和高)
#mai以数值向量标识的边界大小,顺序为“下,左,上,右”,单位为英寸
#mar以数值向量标识的边界大小,顺序为“下,左,上,右”,单位为英分
par(pin=c(4,3),mai=c(1,.5,1,.2))#生成一幅4英寸宽,3英寸高,上下边界为1英寸,左边界为0.5,右边界为0.2英寸的图形
{
dose<-c(20,30,40,45,60)
drugA<-c(16,20,27,40,60)
drugB<-c(15,18,25,31,40)
#par()设定图形参数对所有图都有用
opar<-par(no.readonly=TRUE)
par(pin=c(2,3))
par(lwd=2,cex=1.5)
par(cex.axis=.75,font.axis==3)#坐标轴刻度文本设置为斜体,缩小为默认大小的75%plot(dose,drugA,type=“b“,pch=19,lty=2,col=“red“)#红色实心圆圈和虚线
plot(dose,drugB,type=“b“,pch=23,lty=6,col=“blue“,bg=“green“)#绿色填充的绿色菱形+蓝色边框和蓝色虚线
par(opar)
}
#添加文本、自定义坐标轴和图例
plot(dose,drugA,type=“b“,pch=2,lty=2,col=“red“,lwd=2,
main=“ClinicleTrialsforDrugA“,
sub=“Thisishypotheticaldata“,
xlab=“Dosage“,ylab=“DrugResponse“,
xlim=c(0,60),ylim=c(0,70))
#标题
title(main=“maintitle“,sub=“subtitle“,
xlab=“x-axislabel“,ylab=“y-axislabel“)
title(main=“mytitle“,col.main=“red“,
sub=“mysubtitle“,col.sub=“blue“,
xlab=“myxlabel“,ylab=“myylabel“,
col.lab=“green“,cex.lab=0.75)
{
#坐标轴
x<-c(1:
10)
y<-x
z<-10/x
opar<-par(no.readonly=TRUE)
#增加边界大小
par(mar=c(5,4,4,8)+0.1)
#绘制x对y的图形
plot(x,y,type=“b“,
pch=21,col=“red“,
yaxt=“n“,lty=3,ann=FALSE)
#添加x对1/x的直线
lines(x,z,type=“b“,pch=22,col=“blue“,lty=2)
#绘制自己的坐标轴
axis(2,#1=下,2=左,3=上,4=右
at=x,#数值型向量,表示需要绘制刻度线的位置
labels=x,#字符型向量,表示刻度线旁边的文字标签(如为NULL,则将直接使用at中的值)
col.axis=“red“,
las=2)#标签是否平行于(=0)或垂直于(=2)坐标轴
axis(4,at=z,labels=round(z,digits=2),
col.axis=“blue“,las=2,cex.axis=0.7,tck=-.01#刻度线的长度,以相对于绘图区域大小的分数表示(负值在图形外侧,正值在图形内侧
#0表示禁用刻度,1表示绘制网格线)默认值为-0.01
)
#添加标题和文本
mtext(“y=1/x“,side=4,line=3,cex.lab=1,las=2,col=“blue“)
title(“AnExampleofCreativeAxes“,
xlab=“Xvalues“,
ylab=“Y=X“)
par(opar)
}
#创建次要刻度线
#需要使用Hmisc包中的minor.tick()函数
library(Hmisc)
#在X轴的每两条主刻度线之间添加1条次要刻度线,
#并在Y轴的每两条刻度线之间添加2条次要刻度线,
#次要刻度线时主要刻度线的一半
minor.tick(nx=2,ny=3,tick.ratio=0.5)
#在y轴的1,5,7位置添加水平实线
abline(h=c(1,5,7))
#在x为1,3,5,7,9的位置添加垂直的蓝色虚线
abline(v=seq(1,10,2),lty=2,col=“blue“)
#图例
{
dose<-c(20,30,40,45,60)
drugA<-c(16,20,27,40,60)
drugB<-c(15,18,25,31,40)
#par()设定图形参数对所有图都有用
opar<-par(no.readonly=TRUE)
par(lwd=2,cex=1.5,font.lab=2)
plot(dose,drugA,type=“b“,pch=15,lty=1,col=“red“,
ylim=c(0,60),
main=“DrugAvs.DrugB“,
xlab=“DrugDosage“,ylab=“DrugResponse“)
lines(dose,drugB,type=“b“,pch=17,lty=2,col=“blue“)
abline(h=c(30),lwd=1.5,lty=2,col=“gray“)
library(Hmisc)
minor.tick(nx=3,ny=3,tick.ratio=0.5)
legend(“topleft“,#bottom,bottomleft,left,topleft,top,topright,right,center,
inset=.05,#指定图例向图形内侧移动的大小(以绘图区域大小的分数表示)title=“DrugType“,c(“A“,“B“),
lty=c(1,2),pch=c(15,17),col=c(“red“,“blue“))
par(opar)
}
#文本标注
text(location,“texttoplace“,pos,...)
mtext(“texttoplace“,side,line=n,...)
#location文本的位置参数,可为一对x,y坐标,
#pos文本相对于位置参数的方位:
1234,下左上右。
指定了pos就可以同时指定参数offset=作为位置偏移量,以相对于单个字符宽度的比例表示
#side指定用来放置文本的边。
可以指定参数line=来内移或外移文本,随着值的增加,文本将外移。
也可以使用adj=0将文本向左下对齐,=1向右上对齐
{
attach(mtcars)
plot(wt,mpg,
main=“Mileagevs.CarWeight“,
xlab=“Weight“,ylab=“Mileage“,
pch=18,col=“blue“)
text(wt,mpg,
row.names(mtcars),
cex=0.6,pos=4,col=“red“)
detach(mtcars)
}
{
#展示例外字体族
opar<-par(no.readonly=TRUE)
par(cex=1.5)
plot(1:
7,1:
7,type=“n“)
text(3,3,“Exampleofdefaulttext“)
text(4,4,family=“mono“,“Exampleofmono-spacedtext“)
text(5,5,family=“serif“,“Exampleofseriftext“)
par(opar)
}
#图形的组合
#12行2列按行填充的图形排列
attach(mtcars)
opar<-par(no.readonly=TRUE)
par(mfrow=c(2,2))
plot(wt,mpg,main=“Scatterplotofetvs.mpg“)
plot(wt,disp,main=“Scatterplotofwtvs.disp“)
hist(wt,main=“Histogramofwt“)
boxplot(wt,main=“Boxplotofwt“)
par(opar)
detach(mtcars)
#2三行一列图形排列
attach(mtcars)
opar<-par(no.readonly=TRUE)
par(mfrow=c(3,1))
hist(wt)#hist()为高级作图函数,包含一个默认的标题,使用main=““可以禁用它,也可以使用ann=FALSE禁用所有标题和标签
hist(mpg)
hist(disp)
par(opar)
detach(mtcars)
#3一幅图被置于第一行,另两幅图被置于第二行
attach(mtcars)
layout(matrix(c(1,1,2,3),2,2,byrow=TRUE))
hist(wt)
hist(mpg)
hist(disp)
detach(mtcars)
#4一幅图被置于第一行,另两幅图被置于第二行
#第一行中图形高度时第二行的
#右下角图形的宽度是左下角图形宽度的
attach(mtcars)
layout(matrix(c(1,1,2,3),2,2,byrow=TRUE),
widths=c(3,1),#各列宽度值组成一个向量
heights=c(1,2))#各行高度值组成一个向量
hist(wt)
hist(mpg)
hist(disp)
detach(mtcars)
#多幅图形布局的精致控制
opar<-par(no.readonly=TRUE)
#设置散点图
par(fig=c(0,0.8,0,0.8))
plot(mtcars$wt,mtcars$mpg,xlab=“MilesPerGallon“,ylab=“CarWeight“)
#在上方添加箱线图
par(fig=c(0,0.8,0.55,1),new=TRUE)
boxplot(mtcars$wt,horizontal=TRUE,axes=FALSE)
#在右侧添加箱线图
par(fig=c(0.65,1,0,0.8),new=TRUE)
boxplot(mtcars$mpg,axes=FALSE)
#添加标题
mtext(“EnhancedScatterplot“,side=3,outer=TRUE,line=-3)
par(opar)
##########################################
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 语言 实战 前三章 图形 运行 代码
![提示](https://static.bingdoc.com/images/bang_tan.gif)