交通数据分析基础 实验指导2 Base R绘图函数plot_第1页
交通数据分析基础 实验指导2 Base R绘图函数plot_第2页
交通数据分析基础 实验指导2 Base R绘图函数plot_第3页
交通数据分析基础 实验指导2 Base R绘图函数plot_第4页
交通数据分析基础 实验指导2 Base R绘图函数plot_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

BaseR绘图函数plotplot是R中默认的绘图函数。plot(mtcars$wt,mtcars$drat)

abline(lm(mtcars$wt~mtcars$drat))plot函数常用的参数包括:x:x轴的数据y:y轴的数据type:类型,“p”为点,“l”为线,“b”为点和线的组合main:图形标题pch:用于指定图中点的类型lty:用于指定线条类型pch的取值对应的类型如下:lty的取值对应的类型如下:par(mfrow=c(1,3))#子图,1行3列

a<-c(21,32,39,48,56)

b<-c(16,18,29,43,70)

plot(a,b,type="p",pch=16)

plot(a,b,type="l",lty=6)

plot(a,b,type="b",pch=16,lty=6)#设置图形标题、x轴标题、y轴标题

par(mfrow=c(1,1))

a<-c(21,32,39,48,56)

b<-c(16,18,29,43,70)

plot(a,b,type="p",pch=16,main="point",xlab="x-axis",ylab="y-axis")#添加水平、垂直参考线

a<-c(21,32,39,48,56)

b<-c(16,18,29,43,70)

plot(a,b,type="b",pch=16,lty=6,main="both")

abline(h=c(30,40),lty=4)#水平参考线

abline(v=c(30,40),lty=4)#垂直参考线#添加图例

a<-c(21,32,39,48,56)

b<-c(16,18,29,43,70)

c<-c(19,21,32,40,50)

plot(a,b,type="b",pch=16,lty=6)

lines(a,c,type="b",pch=8,lty=1)#lines可在原图的基础上,叠加线段

legend("topleft",#图例位置

inset=0.05,#偏移,尝试修改数值,看看图例位置的变化

title="class",#图例标题

legend=c('B','C'),#图例的值

lty=c(6,1),#图例中线型

pch=c(16,8))#图例中点的类型#par函数中,mfrow用于指示图形按照2行2列的形式排列

par(mfrow=c(2,2))

plot(mtcars$wt,mtcars$mpg,type="p",pch=20)

plot(mtcars$wt,mtcars$disp,type="p",pch=20)

hist(mtcars$wt,main="")

boxplot(mtcars$wt)ggplot2绘图R语言中plot函数功能虽然强大,但需要把握的细节极多,因此很多情况下,会使用ggplot2工具包进行绘图。ggplot2包是由HadleyWickham创建的,是R中最为重要的绘图工具包。ggplot2的核心理念是将绘图与数据分离,数据相关的绘图与数据无关的绘图分离,按图层作图,有利于结构化思维,同时它保有命令式作图的调整函数。ggplot2命令简洁,图形美观。ggplot2的基本绘图模板为:ggplot2(data=<DATA>)+<GEOM_FUNCTION>(mapping)=aes(<MAPPING>))数值型数据的分布图set.seed(1)

data<-data.frame(

value=unlist(lapply(1:6,function(i)rnorm(100,i/2,1))),

class=rep(c("class1","class2","class3"),each=200),

type=sample(c("type1","type2"),size=600,replace=TRUE))

head(data)##valueclasstype

##1-0.126class1type1

##20.684class1type2

##3-0.336class1type1

##42.095class1type2

##50.830class1type1

##6-0.320class1type2密度曲线图通过代码生成数据如下:#绘制密度曲线图

library(ggplot2)

ggplot(data,aes(x=value))+

geom_density()#调整geom_density中的参数adjust,得到不同平滑度的密度曲线

#ggtitle用于指定标题

#ggpubr::ggarrange用于将多个ggplot2绘制的图组合在一起

base<-ggplot(data,aes(x=value))

p1<-base+ggtitle("adjust=1.0")+geom_density()

p2<-base+ggtitle("adjust=0.5")+geom_density(adjust=0.5)

p3<-base+ggtitle("adjust=3.0")+geom_density(adjust=3.0)

ggpubr::ggarrange(p1,p2,p3,ncol=3,nrow=1)#class为分类特征

#通过fill=class,对class的每个类别,分别绘制密度曲线

#alpha用于指定透明度,取值为0-1,值越大,越不透明

ggplot(data,aes(x=value,fill=class))+

geom_density(alpha=0.5)#facet_wrap用于分面

#color="transparent"指定线为透明

ggplot(data,aes(x=value,y=after_stat(count)))+

geom_density(aes(fill=class),color="transparent")+

facet_wrap(vars(class),nrow=1)+

#图例放置在底部,试试bottom,right,left

theme(legend.position="top")直方图ggplot(data,aes(x=value))+geom_histogram()#通过bins参数改变条形的数量

ggplot(data,aes(x=value))+

geom_histogram(bins=50)#改变直方图的填充颜色和边框的颜色

ggplot(data,aes(x=value))+

geom_histogram(bins=50,fill="red",alpha=0.5,color="black")#通过分面显示不同类别的直方图

ggplot(data,aes(x=value))+

geom_histogram()+

facet_wrap(vars(class))箱型图library(ggplot2)

ggplot(data,aes(x=class,y=value))+

geom_boxplot()#

ggplot(data,aes(x=class,y=value,fill=class))+

geom_boxplot()#通过fill=type,根据type的不同类别,绘制不同的箱型图

ggplot(data,aes(x=class,y=value))+

geom_boxplot(aes(fill=type))#小提琴图,可以看作箱型图的变种

ggplot(data,aes(x=class,y=value))+

geom_violin()分类型数据的分布图生成如下数据:set.seed(1)

data<-data.frame(

gender=sample(c("Male","Female"),size=1000,replace=T),

quality=sample(c("Poor","Fair","Average","Good","Excellent"),

prob=c(0.15,0.15,0.30,0.20,0.10),size=1000,replace=T),

cut=sample(paste0("cut",1:6),size=1000,replace=T),

letter=sample(LETTERS,size=1000,replace=T))

head(data)##genderqualitycutletter

##1MaleGoodcut3L

##2FemalePoorcut3B

##3MaleGoodcut2J

##4MaleExcellentcut6Q

##5FemaleAveragecut4P

##6MaleAveragecut5X条形图library(ggplot2)

ggplot(data,aes(x=quality))+geom_bar()由于data$quality是字符型向量,因此上图按照字母顺序对图进行排序。如果想改变顺序,需要将data$quality转化为有序因子:data$quality<-factor(data$quality,ordered=T,levels=c("Poor","Fair","Average","Good","Excellent"))

ggplot(data,aes(x=quality))+geom_bar()#fill=gender,指定根据gender对样本进行分类,再绘制条形图

ggplot(data,aes(x=cut,fill=gender))+

geom_bar(position="dodge")#geom_text用于添加标签

ggplot(data,aes(x=cut,fill=gender))+

geom_bar(position="dodge")+

geom_text(stat="count",aes(label=after_stat(count)),

position=position_dodge(width=0.9),vjust=-0.5)+

scale_y_continuous(expand=expansion(mult=c(0.05,0.15)))#对数据进行归一化,查看分布

ggplot(data,aes(x=cut,fill=gender))+

geom_bar(position="fill")饼状图及环形图library(lessR)

PieChart(data=data,x=quality,hole=0,labels_digits=1)##>>>suggestions

##PieChart(quality,hole=0)#traditionalpiechart

##PieChart(quality,labels="%")#display%'sonthechart

##PieChart(quality)#barchart

##Plot(quality)#bubbleplot

##Plot(quality,labels="count")#lollipopplot

##

##---quality---

##

##PoorFairAverageGoodExcellentTotal

##Frequencies:1511743492191071000

##Proportions:0.1510.1740.3490.2190.1071.000

##

##Chi-squaredtestofnullhypothesisofequalprobabilities

##Chisq=171.440,df=4,p-value=0.000library(lessR)

PieChart(data=data,x=quality,labels_digits=1)##>>>suggestions

##PieChart(quality,hole=0)#traditionalpiechart

##PieChart(quality,labels="%")#display%'sonthechart

##PieChart(quality)#barchart

##Plot(quality)#bubbleplot

##Plot(quality,labels="count")#lollipopplot

##

##---quality---

##

##PoorFairAverageGoodExcellentTotal

##Frequencies:1511743492191071000

##Proportions:0.1510.1740.3490.2190.1071.000

##

##Chi-squaredtestofnullhypothesisofequalprobabilities

##Chisq=171.440,df=4,p-value=0.000数值型变量与数值型变量之间的关系图生成数据:library(dplyr)

library(purrr)

set.seed(1)

data<-tibble(

value1=unlist(map(1:6,~rnorm(100,.x*2,2))),

value2=map2(1:6,1:6,~value1[seq(100*(.x-1)+1,100*.x)]*.y+

rnorm(100,0,10))%>%unlist(),

value3=runif(600,0,10),

type=sample(c("type1","type2"),size=600,replace=T),

cut=rep(paste0("cut",1:3),each=200))%>%

as.data.frame()

head(data)##value1value2value3typecut

##10.747-2.660.597type1cut1

##22.36717.390.526type1cut1

##30.3295.619.728type1cut1

##45.19110.617.946type1cut1

##52.6591.290.317type2cut1

##60.359-11.015.433type1cut1library(ggplot2)

ggplot(data,aes(x=value1,y=value2))+geom_point()#geom_smooth用于添加趋势线

ggplot(data,aes(x=value1,y=value2))+

geom_point(size=0.5)+

geom_smooth()#method="lm"设定趋势线为直线

#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论