版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2培训培训2 R绘图绘图统计绘图统计绘图 统计图形易于观察到数据中的信息。统计图形易于观察到数据中的信息。 统计学家统计学家John Tukey: “图形的最大价值就图形的最大价值就是使我们注意到从来没有料到过的信息。是使我们注意到从来没有料到过的信息。” “一图胜千言一图胜千言”:尤其数据庞大时:尤其数据庞大时.2 R 绘图绘图 Bar plot条形图条形图 Pie plot饼图饼图 Histogram直方图直方图 Density plot-核密度图核密度图 Dot plot散点图散点图 Heatmap热图热图 Contour Plot-等高图等高图 Perspective Plot-三维图
2、三维图 Violin Plot-小提琴图小提琴图 Scatter plot Matrices散点矩阵图散点矩阵图 Conditioning plot条件图条件图 Correlograms相关图相关图 Map地图地图High level-高级绘图高级绘图 lattice包包 ggplot2包包2.1 条形图条形图(Bar plots)条形图是目前各种统计图形中应用最广泛的条形图是目前各种统计图形中应用最广泛的图形之一,通过垂直或水平的条形展示类别图形之一,通过垂直或水平的条形展示类别变量的频数分布。变量的频数分布。条形图绘制函数为条形图绘制函数为 barplot(),其用法如下:,其用法如下:
3、barplot(x) 其中,参数其中,参数 x 是一个向量或矩阵。是一个向量或矩阵。条形图例子条形图例子par(mfrow = c(1, 2) barplot(counts, main = Simple Bar Plot, xlab= Improvement, ylab= Frequency) barplot(counts, main = Horizontal Bar Plot, xlab= Frequency, ylab= Improvement, horiz = TRUE) library(vcd) counts counts None Some Marked 42 14 28NoneMa
4、rkedSimple Bar PlotImprovementFrequency010203040NoneMarkedHorizontal Bar PlotFrequencyImprovement010203040堆砌和分组条形图堆砌和分组条形图counts - table(Arthritis$Improved,Arthritis$Treatment)barplot(counts, # 绘制堆砌绘制堆砌条形图条形图 main = Stacked Bar Plot, xlab = Treatment, ylab=Frequency, col = c(red, yellow,green), lege
5、nd = rownames(counts) barplot(counts, # 绘制分组绘制分组条形图条形图 main = Grouped Bar Plot, xlab = Treatment, ylab = Frequency, col = c(red, yellow, green), legend = rownames(counts), beside = TRUE)PlaceboTreatedStacked Bar PlotTreatmentFrequency010203040NoneSomeMarkedPlaceboTreatedGrouped Bar PlotTreatmentFreq
6、uency0102030NoneSomeMarked2.2 饼图饼图(Pie chart)饼图:用于表示计数资料、质量性状资料的百分比。pie(x, labels) 其中,x :数值型向量,是扇形的面积;labels :字符型向量,是扇形的标签。饼图例子饼图例子par(mfrow = c(1, 2) slices - c(12, 3, 26, 16, 11, 4) lbls - c(Blueberry, Cherry, Apple,Peach, Banana, other)pct - round(slices / sum(slices) * 100) lbls2 - paste(lbls, n
7、 , pct, %, sep = )pie(slices, labels = lbls2, col = rainbow(length(lbls2), main= Pie Chart with Percentages) Blueberry 17%Cherry 4%Apple 36%Peach 22%Banana 15%other 6%Pie Chart with Percentages3D饼图饼图3D Pie Chart BlueberryCherryApplePeachBananaother3D饼图和扇形图饼图和扇形图3D Pie Chart BlueberryCherryApplePeach
8、BananaotherFan PlotApplePeachBlueberryBananaotherCherry2.3 直方图直方图Historgram直方图又称为柱状图或质量分布图,由一系列高度不等的直方图又称为柱状图或质量分布图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。一般用横轴表示数据类型,纵轴表示分布情况。直方图是常用于展示连续数据分布,本质上也是密度函数直方图是常用于展示连续数据分布,本质上也是密度函数的一种估计。的一种估计。 绘制直方图方法如下:绘制直方图方法如下: hist(x, breaks
9、 =, freq =) x: 数值向量,数值向量,breaks:组数,组数,freq:概率密度概率密度(F)或频数或频数(T) 。直方图例子直方图例子par(mfrow = c(2, 2), mar = c(2, 3, 2, 0.5), mgp = c(2, 0.5, 0)data(geyser, package = MASS)hist(geyser$waiting, main = (1) freq = TRUE, xlab = waiting)hist(geyser$waiting, freq = FALSE, xlab = waiting, main = (2) freq = FALSE)
10、hist(geyser$waiting, breaks = 5, density = 10, xlab = waiting, main = (3) breaks = 5)hist(geyser$waiting, breaks = 40, col = grey, xlab = waiting, main = (4) breaks = 40)(1) freq = TRUEwaitingFrequency4050607080901100204060(2) freq = FALSEwaitingDensity4050607080901100.000.020.04(3) breaks = 5waitin
11、gFrequency40506070809011004080(4) breaks = 40waitingFrequency405060708090 100010202.4 核密度图核密度图kernel density Plot核密度估计核密度估计(kernel density estimation)是概率论中用来是概率论中用来估计未知的密度函数的一种非参数检验方法。估计未知的密度函数的一种非参数检验方法。核密度图是观察连续型变量分布的有效方法之一。核密度图是观察连续型变量分布的有效方法之一。 核密度图的绘图方法为:核密度图的绘图方法为: plot(density(x) x: 是一个数值型向量。
12、是一个数值型向量。 核密度图例子核密度图例子par(mfrow = c(2,1)d - density(iris,1) plot(d) #第一张第一张 plot(d, main = Kernel Density of Sepal length) #第二张第二张 polygon(d, col = blue, border = red) 456780.00.20.4density.default(x = iris, 1)N = 150 Bandwidth = 0.2736Density456780.00.20.4Kernel Density of Sepal lengthN = 150 Bandw
13、idth = 0.2736Density2.5 散点图散点图(Scatter diagram)散点图通常用来展示两个变量之间的关系,这种关系可散点图通常用来展示两个变量之间的关系,这种关系可能是线性或非线性的。能是线性或非线性的。散点图的绘图方法如下:散点图的绘图方法如下: plot(x, y, type = ) x、y 为数值型向量,为数值型向量,type 为指定图形的类型。为指定图形的类型。par(mfrow = c(2, 2)tv- c(p, l, b, o)for(i in 1 : 4) plot(iris,1, iris,3, type = tvi, main = paste(typ
14、e=, tvi)散点图例子散点图例子7.51234567type= piris, 1iris, 7.51234567type= liris, 1iris, 7.51234567type= biris, 1iris, 7.51234567type= oiris, 1iris, 3 n - 10000 c1 - matrix(rnorm(n, mean = 0, sd = 0.5), ncol = 2) c2 - matrix(rnorm(n, mean = 3, sd = 2), ncol = 2) mydata -
15、rbind(c1, c2) mydata - as.data.frame(mydata) names(mydata) - c(x, y) with(mydata, plot(x, y, pch = 19, main = Scatter Plot with 10,000 Observations) with(mydata, smoothScatter(x, y, main = Scatterplot Colored by Smoothed Densities)高密度的散点图高密度的散点图-50510-50510Scatter Plot with 10,000 Observationsxy-505
16、10-50510Scatterplot Colored by Smoothed Densitiesxylibrary(hexbin) with(mydata, bin - hexbin(x, y, xbins = 50) plot(bin, main = Hexagonal Binning with 10,000 Observations) )高密度的散点图高密度的散点图( (六边形封箱法六边形封箱法) )-50510-50510 xyHexagonal Binning with 10,000 Observations-50510-50510 xyHexagonal Binning with
17、10,000 Observations1173450668399115132148164180197213229246262Counts2.7 等高图等高图Contour Plot等高图或等高线,就是将平面上对应的等高图或等高线,就是将平面上对应的 z 值值(高度高度)相等的点用颜色或线连接起来。表面上相等的点用颜色或线连接起来。表面上看起来是二维形式,但实际上展示的是三维看起来是二维形式,但实际上展示的是三维数据。数据。R 中使用中使用 contour()函数来绘制等高图。函数来绘制等高图。等高图例子等高图例子data(volcano)x - 10*(1 : nrow(volcano)y -
18、 10*(1 : ncol(volcano)image(x, y, volcano, col = terrain.colors(100), axes = FALSE) # 产生不同颜色填充的网格产生不同颜色填充的网格contour(x, y, volcano, levels = seq(90, 200, by = 5), add = TRUE, col = peru) # 画等高线画等高线xy2.8 三维透视图三维透视图(Perspective Plot)三维透视图是将一个矩阵中包含的高度数值用曲面连接三维透视图是将一个矩阵中包含的高度数值用曲面连接起来而形成的图形。起来而形成的图形。R使用使
19、用 persp( )函数绘制三维透视图。函数绘制三维透视图。 三维透视图例子三维透视图例子 z - 3 * volcano x - 10 * (1 : nrow(z) y - 10 * (1 : ncol(z) par(mar = rep(1, 4) persp(x, y, z, theta = 150, phi = 30, col = green3, axes = T, scale = F, ltheta = -120, shade = 0.75, border = NA, box = T)2.9 颜色等高图颜色等高图颜色等高图,又称为层次图(颜色等高图,又称为层次图(Level Plot)
20、,与等高图),与等高图的原理类似,只是颜色等高图用不同颜色表示不同高度的原理类似,只是颜色等高图用不同颜色表示不同高度,并配有颜色图例,用以说明图中的颜色与高度值的对,并配有颜色图例,用以说明图中的颜色与高度值的对应关系。颜色等高图对于试验数据的空间分析,可以做应关系。颜色等高图对于试验数据的空间分析,可以做一个直观、形象的判断。一个直观、形象的判断。以某松树某个林分的10年生胸径为例,试验林是35行、40列,共1400个数据。颜色等高图例子颜色等高图例子par(mar = c(4, 4, 2, 2), cex.main = 1)df - read.table( file = d5.1.10.
21、csv, header = F, sep = , )df - as.matrix(df)x = 1 : nrow(df)y = 1 : ncol(df)filled.contour(x, y, df, color = terrain.colors, plot.title = title(main = The Topography of dbh10 in Pinus Loc 8, xlab = Col, ylab = Row), plot.axes = axis(1, seq(5, 40, by = 5) axis(2, seq(5, 35, by = 5) , key.title = titl
22、e(main = DBHn(cm), cex.main = 0.7) )names = c(A, B, C)2.10散点图矩阵散点图矩阵(Scatter plot Matrices) 散点图矩阵是散点图的高维扩展,它的基本构成是普通散点图矩阵是散点图的高维扩展,它的基本构成是普通散点图,只是将多个变量的两两散点图以矩阵的形式排散点图,只是将多个变量的两两散点图以矩阵的形式排列起来,就构成了所谓的散点图矩阵,它通常包含列起来,就构成了所谓的散点图矩阵,它通常包含 pp 个窗格,个窗格, p 为变量个数为变量个数 。散点图矩阵从一定程度上克服了在平面上展示高维数据散点图矩阵从一定程度上克服了在平面
23、上展示高维数据的困难,对于我们查看变量之间的两两关系非常有用。的困难,对于我们查看变量之间的两两关系非常有用。用用 pairs( ) 函数产生所有列函数产生所有列(column)之间两两成对的散之间两两成对的散点矩阵图。点矩阵图。pairs(iris ,1:4) Sepal.Length2.03.04.03.5Sepal.WidthPetal.Length1351234567Petal.Width图形变换图形变换1source(panelutils.R) # panelutils.R脚本文件必须与当前R工作空间在同一文件
24、#夹下# 带频度分布的柱状图和光滑拟合曲线的双变量散点图pairs(iris,1:4, panel=panel.smooth, diag.panel=panel.hist,main=双变量散点图(带频度分布图和平滑曲线))图形变换图形变换2source(panelutils.R) # panelutils.R脚本文件必须与当前R工作空间在同一文件#夹下# 带频度分布的柱状图和光滑拟合曲线的双变量散点图pairs(iris,1:4, lower.panel=panel.smooth, upper.panel=panel.cor, diag.panel=panel.hist,main=双变量散点图
25、(带频度分布图和平滑曲线))2.11 条件图条件图(Conditioning plot)coplot( )函数可以画出条件图。函数可以画出条件图。coplot 函数能够说明函数能够说明数据集中变量的三向甚至四向关系,它特别于适合观察数据集中变量的三向甚至四向关系,它特别于适合观察当给定其他预测变量时,响应变量如何根据一个预测变当给定其他预测变量时,响应变量如何根据一个预测变量变化。量变化。条件图例子条件图例子df-read.table(file=d5.1.6.csv,header=T,sep=,)#单个条件变量的条件图单个条件变量的条件图coplot(dbh h|as.factor(str),
26、 data = df)#双条件变量的条件图双条件变量的条件图coplot(dbh h|as.factor(str) + as.factor(dis), data = df)10251618202216182022161820221025hdbh123468Given : as.factor(str)102030162216221622162216221622102030hdbh123468Given : as.factor(str)01Given : as.factor(dis)2.12相关图相关图(Correlograms) 当一个数据集中的变量数目比较多且数值很多时,计算当一个数据集中的变
27、量数目比较多且数值很多时,计算相关系数矩阵是多元统计分析的一个基本方法,但哪些相关系数矩阵是多元统计分析的一个基本方法,但哪些变量相对独立,哪些变量之间相关程度最大?变量之间变量相对独立,哪些变量之间相关程度最大?变量之间是否以某种特定的方式聚集在一起?是否以某种特定的方式聚集在一起?corrgram 包的包的 corrgram ()函数就可将相关系数矩阵可函数就可将相关系数矩阵可视化,其使用格式如下:视化,其使用格式如下: corrgram (x, type =, order =, panel =, text.panel =, diag.panel = ) 相关图例子相关图例子df- rea
28、d.csv(file = d.csv, header = T)df.cor-cor(df,-1)library(corrgram)corrgram(df.cor, type=cor,order=T, lower.panel=panel.shade, upper.panel=panel.pie, text.panel=panel.txt, main=Correlogram of fir intercorrelations)lrttlcprowdtwhvdbhwproCorrelogram of fir intercorrelationshdbhvcprowdwprotltwlrtC
29、orrelogram of fir intercorrelations相关图例子相关图例子library(corrgram) corrgram(df.cor, type=cor,order=F, lower.panel=panel.conf, upper.panel=panel.pie, text.panel=panel.txt, main=Correlogram of fir intercorrelations)lrt0.79tl0.20 0.18cpro-0.00-0.090.22wd-0.470.16-0.08-0.08tw-0.17-0.20-0.43-0.29-0.04h-0.12-
30、0.20-0.43-0.38-0.110.90v-0.07-0.18-0.41-0.35-0.150.86 0.98dbh0.01 0.02-0.25-0.98-0.020.32 0.43 0.39wproCorrelogram of fir intercorrelations2.13 地图地图map library(maps) map(world, fill = TRUE, col = rainbow(200), ylim = c(-60, 90), mar = c(0, 0, 0, 0) title(世界地图世界地图)世界地图library(maps)library(mapdata)map
31、(china, col = black, ylim = c(18, 54), panel.first = grid()title( 中国地图中国地图) 中国地图 #par(mar=c(0, 0, 0, 0) library(maptools) x.map-readShapePoly(bou2_4p.shp) #plot(x.map) plot(x.map,col=rainbow(30)从网站下载中国地图的从网站下载中国地图的GIS数据并解压为三个文件数据并解压为三个文件 (下载网址:下载网址: /wp-content/uploads/2009/07/chinapro
32、vinceborderdata_tar_gz.zip),将这三个文件拷贝到将这三个文件拷贝到R中设好的工作空间下,然后运行代码:中设好的工作空间下,然后运行代码: getColor=function(mapdata,provname,provcol,othercol) f=function(x,y) ifelse(x %in% y,which(y=x),0); colIndex=sapply(mapdatadata$NAME,f,provname); fg=c(othercol,provcol)colIndex+1; return(fg);provname=c(北京市北京市,天津市天津市,上海
33、市上海市,重庆市重庆市)provcol=c(red,green,yellow,purple)plot(x.map,col=getColor(x.map,provname,provcol,white) library(ggmap) library(mapproj) # Google获取获取China的地图数据的地图数据 map - get_map(location = China, zoom = 4) ggmap(map) #Google获取获取Guangzhou的公路地图数据的公路地图数据 map - get_map(location = Guangzhou, zoom = 10, mapty
34、pe = roadmap) ggmap(map)2.14 lattice包绘图包绘图library(lattice) xyplot(uptakeconc|Type*Treatment, data= CO2, group=Plant, type=o, main = Distribution of CO2 uptake by plant, xlab = CO2 conc, ylab = CO2 uptake, auto.key=list(space=right, columns=1, title=Plant) )2.15 ggplot2 包绘图包绘图library(ggplot2) #可以将图作为
35、对象进行运算累加可以将图作为对象进行运算累加 df - read.table( file= ggplot.pdata.csv, header = T, sep = , )for( i in 1:3 ) df ,i - as.factor(df ,i) str(df)names(df)(p - ggplot( data = df, aes(x = dj , y = dbh10) + geom_point() # 图图1(p1-ggplot(df, aes(x=dj , y = dbh10, shape =Spacing, colour = Spacing)+geom_point() # 图图2(
36、p2 - p1 + stat_smooth() # 图图3(p3 - p1 + geom_point(aes( size = dj ) # 图图4(p4 - p3 + scale_size_continuous( range = c(1, 10 ) # 图图5(p5 - p1 + facet_wrap( Spacing, ncol = 1 ) )# 图图6100150200250300250300350400450djdbh10100150200250300250300350400450djdbh10Spacing23100200300250300350400450djdbh10Spacing
37、23100150200250300250300350400450djdbh10dj250300350400450Spacing23100150200250300250300350400450djdbh10dj250300350400450Spacing2323100150200250300100150200250300250300350400450djdbh10Spacing2343练习三:熟悉练习三:熟悉R绘图绘图读入数据读入数据stu.data.csv为数据集为数据集df1.基础绘图基础绘图 自己选择变量分别绘制条形图、饼图、扇形图、直方自己选择变量分别绘制条形图、饼图、扇形图、直方图、核
38、密度图、散点图、热图、散点图矩阵、条件图和相图、核密度图、散点图、热图、散点图矩阵、条件图和相关图。关图。2. 高级绘图高级绘图 自己选择变量分别采用自己选择变量分别采用lattice包和包和ggplot2包绘制图形。包绘制图形。练习三练习三 参考代码参考代码df-read.csv(file=stu.data.csv,header=T)names(df)# 条形图条形图counts-table(df$Grade)par(mfrow = c(1, 2)barplot(counts, xlab=Grade, ylab=Frequency) barplot(counts,xlab=Grade, yl
39、ab=Improvement,horiz=T)counts - table(df$Grade,df$Sex)barplot(counts,main=Stacked Bar Plot, legend=rownames(counts), xlab=Sex, ylab=Frequency,ylim=c(0,100), col=c(red, yellow,green,blue)barplot(counts,main=Grouped Bar Plot, legend=rownames(counts), xlab=Treatment, ylab=Frequency,ylim=c(0,75), col=c(
40、red, yellow, green,blue),beside=T)# 饼图、扇形图饼图、扇形图slices - as.vector(counts) lbls - c(1, 2, 3,4)pct - round(slices/sum(slices)*100) lbls2 - paste(lbls, n , pct, %, sep=)pie(slices, labels=lbls2, col=rainbow(length(lbls2), main=list(Pie Chart with Percentages,cex=0.8) )library(plotrix)pie3D(slices, labels=lbls2,explode=0.1,font=2, main=3D Pie Chart ,labelcex=1.0, radius=0.75)fan.plot(slices, labels = lbls2, main=Fan Plot,cex=0.5)# 直方图直方图hist(df$height,main=Height)# 核密度图核密度图plot(density(df$height),main=Height density)# 散点图散点图plot(df$weight, df$height)#热图热图df.2 - as.matrix(df ,-1:-3)r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年国际酒店管理专业HSM认证考试预测模拟题
- 2026年经济师综合考试笔试模拟卷
- 2026年金融投资顾问实操考试题目及详解
- 2026年法律事务英语阅读理解题目集
- 绿化工程持久性植物配置方案
- 新型墙体材料应用方案
- 照明系统安装与调试方案
- 建筑模型制作与应用方案
- 停车场改造与管理方案
- 建筑垃圾拆迁过程管理方案
- 江苏省无锡市2025届高三上学期期末教学质量调研测试-数学试卷(含答案)
- 慢性胃炎的护理业务查房
- 经典名著《红楼梦》阅读任务单
- 古田会议学习课件
- 高寒地区建筑工程冬季施工技术规范研究
- 电流保护原理课件
- DBJT15-212-2021 智慧排水建设技术规范
- 民俗学课件万建中
- 能源与动力工程专业培养目标合理性评价分析报告
- 公司员工活动室管理制度
- 2025年水晶手链市场需求分析
评论
0/150
提交评论