您的位置:首页 > 其它

R语言画图功能使用手册

2016-05-26 22:37 507 查看
R语言画图功能大全

一、plot()函数:散点图

----#plot是用来画散点图的~左边是因变量;右边是自变量

plot(cars$dist~cars$speed)                ,#y~x

main=”Relationship between car distance & speed”    ,#表标题

xlab = "Speed(miles per hour)"                ,#X坐标轴标题

ylab="Distance travelled (miles)"            ,#Y坐标轴标题

xlim=c(0,30)                        ,#设置X轴范围从0到30

ylim=c(0,140)                        ,#设置Y轴范围从0到140

xaxs="i"                        ,#设置X轴风格internal

yaxs="i"                        ,#设置X轴风格internal

col="red"                        ,#设置“散点“”的颜色为红色

pch=19                            ,#设置散点的形状为实心圆点

二、画线图

sales<-read.csv("dailysales.csv",header=TRUE)

plot(sales$units~as.Date(sales$date,"%d/%m/%y"))

#指定散点图类型为“l”表示画线图

type="l"

main="UnitSales in the month of January 2010"

xlab="Date"

ylab="Number of units sold",col="blue"

运行在R上的实例:

#plot是用来画散点图的~左边是因变量;右边是自变量

plot(cars$dist~cars$speed,xlab="speed",ylab = "ditance",xaxs="i",col="red",pch=19,main="Relation distance & speed")

sales<-read.csv("E:\\R_workspace\\dailysales.csv",header=TRUE)

plot(sales$units~as.Date(sales$date,"%d/%m/%y"),type="l"

     ,main="UnitSales in the month of January 2010",xlab="Date"

     ,ylab="Number of units sold",col="blue")

lines()函数---它也是画线图的,但是lines()是依赖散点图的

lines(sales$units~as.Date(sales$date,"%d/%m/%y"),col="red")

注意---高水平作图函数与低水平作图函数

1)高水平作图函数:可以独立绘图,例如plot()

2)低水平作图函数:必须先运行高水平作图函数绘图,然后再加上画在已有的图上面

运行在R上的实例:

#lines()

plot(sales$units~as.Date(sales$date,"%d/%m/%y"))

lines(sales$units~as.Date(sales$date,"%d/%m/%y"),col="red")

三、散点图:

在坐标系里直观地显示样本数据分布情况;

一般可以描画2-3变量(维)样本数据,更高维度的可以使用辅助的标识方法,例如:面积、颜色、文字等。

#绘制散点图y~x

plot(cars$dist~cars$speed)

#绘画散点图也可以增加颜色设置

plot(cars$dist~cars$speed,col="red")

#绑定数据集

attach(cars)

plot(speed~dist)

detach(cars)

par(mfrow=c(1,3))

#type="l"就会把散点图变成线图,他把每个点连接而成的图片

#xaxs=“i"---internal

plot(dist~speed,main="Relationshio about dist and speed--i",

     xlab="Speed(meil)",ylab="Dist",type="l",col="red",xaxs="i",xaxs="i")

plot(dist~speed,main="Relationshio about dist and speed-i",

    xlab="Speed(meil)",ylab="Dist",

    col="red",xaxs="i",xaxs="i")

#xaxs="r"--regular

plot(dist~speed,main="Relationshio about dist and speed--r",

     xlab="Speed(meil)",ylab="Dist",col="red",xaxs="r",yaxs="r")

#一下的三种会报同样的错误------Error in plot.window(...) : axis style "e" unimplemented

#xaxs="s"--standard

plot(dist~speed,main="Relationshio about dist and speed--s",

 xlab="Speed(meil)",ylab="Dist",col="red",xaxs="s",yaxs="s")

#xaxs="e"--extended

plot(dist~speed,main="Relationshio about dist and speed--e",

     xlab="Speed(meil)",ylab="Dist",col="red",xaxs="e")

#xaxs="d"--direct

plot(dist~speed,main="Relationshio about dist and speed--d",

     xlab="Speed(meil)",ylab="Dist",col="red",xaxs="d")

#用lines把散点图画成线图

#先画出散点图

plot(cars$dist~cars$speed,pch=19)

#用lines把散点联系起来

lines(cars$dist~cars$speed,col="red")

#加上属性pch=19把散点的形状变为实心圆点

lines(cars$dist~cars$speed,col="red")

四、柱形图与barplot()函数

#从工作目录中读取文件

sales<-read.csv("G:\\R_workspace\\sales.csv")

sales

#画柱形图 y,x

barplot(sales$ProductA,names.arg=sales$City,col="black")

#加一个参数让柱状图横着画horiz=TRUE;改图会较上图转90度

barplot(sales$ProductA,names.arg=sales$City,horiz=TRUE,col="black")

#设置一个版面可以看两个图

par(mfrow=c(1:2))

#彩色柱状图的画法

#legend主要用来产生右上角的图例图

#col=heat.colors(5):heat可以产生5个向量,即5种不同的颜色

barplot(as.matrix(sales[,2:4]),beside=TRUE,legend=sales$City,

        col=heat.colors(5),border="white",main="Beside")

#去掉beside之后看效果

barplot(as.matrix(sales[,2:4]),legend=sales$City,

        col=heat.colors(5),border="white",main="No Beside")

> #看一下heat.colors的效果

> col=heat.colors(5)

> col

[1] "#FF0000FF" "#FF5500FF" "#FFAA00FF" "#FFFF00FF" "#FFFF80FF"

五、直方图和柱状图的区别

hist(rnorm())

一个本质区别:

柱形图的纵坐标就是他的值(观测值本身的值)

直方图的纵坐标代表的是频率(观测值的次数)

六、密度图画法:

plot(density(rnorm(1000))

七、箱型图(箱线图)

箱体内的粗横线是中位数(有50%的观测值要比他大,有50%的观测值要比他小),

箱体的上箱框是上四分位数(25%的观测值比他大,75%的观测值比他小);箱体的下箱框是下四分位数(75%的值比他大,25%比他小);

在最外面的两个横线有叫触须,上面的一根横线叫最大值,下面的一根横线叫最小值;在箱线图以外的是离群值,(孤立点)

根据一些标准来判断(一般是根据偏离平均值多少个标准差来确定),超过阈值以后就认为是离群值

metals<-read.csv("metals.csv",header=TRUE)

#箱型图

boxplot(metals,xlab="Metals",ylab="Atmospheric COncentration in ng per cubic metre",

        main="Atmospheric COncentration in London")

#从工作空间导入数据集

drugs<-read.csv("G:\\R_workspace\\drug.csv",header=TRUE)

drugs

boxplot(drugs,xlab="x", ylab="y")

drug<-drugs[2:4]

drug

boxplot(drug,xlab="drug",ylab="density")

八、热力图

#热力图

heatmap(as.matrix(mtcars),Rowv=NA,Colv=NA,

        col=heat.colors(256),scale="column",

        margins=c(2,8),main="Car characteristics by Model")

#基因热力图

genes<-read.csv("genes.csv",header=T)

rownames(genes)<-colnames(genes)

image(x=1,ncol(genes),y=1:nrow(genes),z=t(as.matrix(genes)),axes=FALSE,xlab="",ylab="",

      main="Gene Correlation Matrix")

      axis(1,at=1:ncol(genes),labels=colnames(genes),col="white",

           las=2,cex.axis=0.8)

      axis(1,at=1:ncol(genes),labels=rownames(genes),col="white",

           las=1,cex.axis=0.8)

> install.packages("sp")

Error in install.packages : could not find function "R (>= 3."

在原装的RGUI上安装包即可

九、散点图阵(3X4);aXb--bXa理解为不同的则有6种

#对角线上是某个变量自己和自己的散点图(没有意义就不做图),

pairs(iris[,1:4])

#pch用实心圆

plot(iris[,1:4],main="Relationships between characteristics of iris flowers"

     ,pch=19,col="blue",cex=0.9)

#在一张画板上画多个散点图

#画板上可以放两行三列的图

par(mfrow=c(2,3))

plot(rnorm(100),col="blue",main="PlotNo.1")

plot(rnorm(100),col="blue",main="PlotNo.2")

plot(rnorm(100),col="blue",main="PlotNo.3")

plot(rnorm(100),col="blue",main="PlotNo.4")

plot(rnorm(100),col="blue",main="PlotNo.5")

plot(rnorm(100),col="blue",main="PlotNo.6")

#一个画板上指定三个图片1行3列

market<-read.csv("dailymartket.csv",header=TRUE)

par(mfrow=c(3,1))

plot(market$revenue~as.Date(market$date,"%d/%m/%y"),type="l",main="Revenue",

     xlab="Date",ylab="US Dollars",col="blue")

plot(market$revenue~as.Date(market$date,"%d/%m/%y"),type="l",main="Profits",

     xlab="Date",ylab="US Dollars",col="red")

plot(market$revenue~as.Date(market$date,"%d/%m/%y"),type="l",main="Customer visits",

     xlab="Date",ylab="US Dollars",col="black")

绘图的一些细致工作:

1:#增加图例说明

rain<-read.csv("city.csv",header=TRUE)

#先画出散点图

plot(rain$Tokyo,type="l",col="red",ylim=c(0,300),

     main="Monthly Rainly in major cities",

     xlab="Month of Year",ylab="Rainfall(mm)",

     lwd=2)

#在利用lines将点连接起来画成线图

lines(rain$NewYork,type="l",col="blue",lwd=2)

lines(rain$London,type="l",col="blue",lwd=2)

lines(rain$Berlin,type="l",col="blue",lwd=2)

#增加图例说明

#样式一

#"topright":放在右上角

#lty=1,lwd=2:绘画的样式

legend("topright",

       legend=c("Tokyo","NewYork","London","Berlin"),

       col=c("red","blue","green","orange"),lty=1,lwd=2)

#样式二

#"top":放在顶上方

#lty=1,lwd=2:绘画的样式

legend("top",

       legend=c("Tokyo","NewYork","London","Berlin"),

       ncol=4,cex=0.8,bty="n",

       col=c("red","blue","green","orange"),

       lty=1,lwd=2)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: