R笔记(绘图)

来源:互联网 发布:数据可视化实战pdf下载 编辑:程序博客网 时间:2024/06/05 17:04

R笔记:

setwd("F:\\R基础")getwd()#R绘图示例demo(graphics)  #二维demo(persp)  #三维#####1.绘图区域分割######函数par() #首先,准备绘图数据:从外部读取或随机数生成dat=read.table("online shopping.txt",header=T)attach(dat)set.seed(1234)x=rnorm(1000)x=x[x<0]y=data.frame(x1=1:5,x2=rnorm(5,0,1),x3=rgamma(5,2,3))#将区域分为4个部分par(mfrow=c(2,2))#分别输入4个绘图命令plot(period,amount)hist(x,xlim=range(x),main="hist of x",freq=F,nclass=30,density=20,angle=45)matplot(y,type="l",col=1:3)plot(period,amount,pch=22,col="red",bg="yellow",cex=1.5)title("online shopping",font.main=3,adj=1)#函数layout()layout(matrix(1:4,2,2))#将绘图区域分成2X2的多重图框layout.show(4)  #查看被分割的区域plot(period,amount)hist(x,xlim=range(x),main="hist of x",freq=F,nclass=30,density=20,angle=45)matplot(y,type="l",col=1:3)plot(period,amount,pch=22,col="red",bg="yellow",cex=1.5)title("online shopping",font.main=3,adj=1)layout(1)  #取消图形区域分割layout(matrix(c(1,3,2,3),2,2))#将图形区域分成三个不规则的区域layout.show(3)layout(1)  #取消图形区域分割layout(matrix(c(1,1,2,3,2,3),2,3))#将图形区域分成三个不规则区域layout.show(3)layout(1)  #取消图形区域分割#函数split.screen()split.screen(c(2,1)) #释将图形区域分成上下两部分显示split.screen(c(1,2),screen=2)#将第二部分(下半区)又分割成两个区域screen(1)   #准备在第一个区域绘图hist(x,xlim=range(x),main="hist of x",freq=F,nclass=30,density=20,angle=45)screen(3)   #准备在下半区的第一个区域绘图matplot(y,type="l",col=1:3)screen(4)   #准备在下半区的第二个区域绘图plot(period,amount,pch=22,col="red",bg="yellow",cex=1.5)close.screen(all=TRUE)#####2.基础绘图##########2.1高级绘图函数#######函数plot()dat=read.table("online shopping.txt",header=T)attach(dat)plot(period,amount)plot(period,amount,pch=16,col="red")colors()  #R中的颜色plot(period,amount,pch=19,col=4)palette()  #col取1~8代表的颜色##饼图percent = c(56.7,19.6,5.5,4.7,2.7,10.8)labels = c("天猫","京东","苏宁易购","腾讯B2C","亚马逊中国","其他")#font表示字体,取1~4,分别表示正体、黑体、斜体和黑斜体pie(percent,labels,col=2:7,main = "Pie chart for online shopping",font=2,cex=0.7)##直方图x = rnorm(1000)hist(x,xlim=range(x),main="hist of x",freq=F,nclass=60,density=20,angle=45)hist(x,xlim=range(x),main="hist of x",freq=F,nclass=60,density=20,angle=45,border = "red",col = "blue")#####2.2多元数据绘图######首先生成数据,x2为正态分布随机数,x3为伽马分布随机数y = data.frame(x1=1:5,x2=rnorm(5,0,1),x3=rgamma(5,2,3))matplot(y,type = "l",col=1:3,lwd=2)legend(1,5,col=1:3,pch="—",legend = c("x1","x2","x3"))#coplot()函数data(warpbreaks)  #R自带数据,后两个是因子coplot(breaks~1:54|wool*tension,data=warpbreaks,       col="red",bg="pink",pch=21,       bar.bg=c(fac="lightblue"))#####2.3低级绘图函数####### 三个不同的正态分布x = seq(-4, 4, by=0.1)y1 = dnorm(x,0,0.5)y2 = dnorm(x)y3 = dnorm(x,2,0.5)matplot(x, cbind(y1,y2,y3), type="l",        #lty 控制连线的线型, 可以是整数(1: 实线,2: 虚线,3: 点线,4: 点虚线,5: 长虚线,6: 双虚线)        xlab="X", ylab="Density",lty=c(1,2,3),        col=c("blue", "red", "brown"),          #lwd 控制连线宽度的数字        lwd=2)abline(v=0,lwd=2)abline(v=2,lwd=2)expr1 = 'μ=0'expr2 = 'μ=2'expr3 = 'σ=0.5'expr4 = 'σ=1'legend(-4, 0.8,    #指定位置       c(paste(expr1,",",expr3), paste(expr1,",",expr4),paste(expr2,",",expr3)),       lty=c(1,2,3),        col=c("blue", "red", "brown"))## 正态分布拒绝域的阴影标记x = seq(-4, 4, by=0.1)plot(x, dnorm(x), type="l", lwd=2, col="red",     xlim=c(-4, 4), ylim=c(-0.01, 0.4),      ylab = "Density",      main = "Shadow")abline(h=0, v=0)z = qnorm(1-0.05)  #表示X轴上该点(z)以下概率密度曲线与X轴的面积为0.95xx = seq(z, 4, by=0.1);xx  #输入的两个向量表示X轴上从z到4的值及其对应的密度polygon(c(xx, z), c(dnorm(xx), dnorm(4)), col="yellow1") #添加的文本(Zα)及其位置,adj调整位置,cex调整大小text(z, -0.015, expression(Z[alpha/2]), adj=0.4, cex=1.1)#添加的文本α及其位置text(2, 0.02, expression(alpha/2), adj=0.5, cex=1.5)z1 = qnorm(0.05)  #表示X轴上该点(z1)以下概率密度曲线与X轴的面积为0.05yy = seq(-4, z1, by=0.1)polygon(c(yy, z1), c(dnorm(yy), dnorm(-4)), col="yellow1") text(z1, -0.015, expression(-Z[alpha/2]), adj=0.4, cex=1.1)text(-2, 0.02, expression(alpha/2), adj=0.5, cex=1.5)legend(-3, 0.4, expression(alpha==0.1), adj=0.2)#####2.4图形参数设置######函数par()Mypar = par(adj=0.7,bg=3)  #预先设置图形参数par()par(Mypar)  #恢复原始的图形参数par()#参数adjpar(mfrow=c(1,2)).plot(1:4)title("plot(1:4)",adj=0)plot(1:4)title("plot(1:4)",adj=1)#参数annplot(1:4,ann=FALSE,main='plot(1:4,ann=FALSE)')#尽管指定了参数main的值,但是图像中仍然没有显示plot(1:4,ann=TRUE,main='plot(1:4,ann=FALSE)')#参数col.axispar(cex.axis=1.5,col.axis="red")plot(1:4)