版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)管理控制結(jié)構(gòu)編寫函數(shù)apply函數(shù)族數(shù)據(jù)輸入與輸出綜合實(shí)驗(yàn)?zāi)夸?控制結(jié)構(gòu)R是塊狀結(jié)構(gòu)程序語言塊由大括號{}劃分程序語句換行符或“;”分割基本控制結(jié)構(gòu)順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)控制結(jié)構(gòu)分支結(jié)構(gòu)分支語句:if-elseswitch語句可以直接實(shí)現(xiàn)多分支語句。如果條件式結(jié)果等于n,則執(zhí)行第n條分支的處理;如果取值不符合條件,則返回值是NULL。分支結(jié)構(gòu)分支語句:switch分支語句>p<--0.01>{+if(p<0)+print("p<0!")+else+print("p>0!")+}[1]"p<0!">c(1:3,5)[1]1235>for(iinc(1:3,5))+print(switch(i,"A","B","C","D"))
[1]"A"[1]"B"[1]"C"NULL循環(huán)結(jié)構(gòu)控制語句描
述break語句終止循環(huán)語句,執(zhí)行循環(huán)后的下一語句next語句跳過本次循環(huán),執(zhí)行下一次循環(huán)循環(huán)類型描
述for循環(huán)基本的循環(huán)語句,變量的遍歷while循環(huán)類似for語句,滿足條件執(zhí)行循環(huán)體repeat循環(huán)多次執(zhí)行,滿足條件退出循環(huán)循環(huán)結(jié)構(gòu)循環(huán)語句:for>pv<-c(40,55,70,95,82,100,66,90)>m<-1>result<-"">for(iinpv){+if(i<60){+result[m]<-"需要加強(qiáng)"+}elseif(i<=80){+result[m]<-"繼續(xù)加油"+}else{+result[m]<-"做得很好"+}+m<-m+1+}>m<-1>result<-"">for(iin1:length(pv)){+if(pv[i]<60){+result[i]<-"需要加強(qiáng)"+}elseif(pv[i]<=80){+result[i]<-"繼續(xù)加油"+}else{+result[i]<-"做得很好"+}+}>result[1]"需要加強(qiáng)""需要加強(qiáng)""繼續(xù)加油""做得很好""做得很好""做得很好""繼續(xù)加油""做得很好"循環(huán)結(jié)構(gòu)循環(huán)語句:while比較:for是通過遍歷一個向量來控制循環(huán)次數(shù),while是直接設(shè)置循環(huán)的范圍。>pv<-c(40,55,70,95,82,100,66,90)>i<-1>result<-"">
while(i<=length(pv)){+if(pv[i]<60){+result[i]<-"需要加強(qiáng)"+}elseif(pv[i]<=80){+result[i]<-"繼續(xù)加油"+}else{+result[i]<-"做得很好"+}+i<-i+1+}>result[1]"需要加強(qiáng)""需要加強(qiáng)""繼續(xù)加油""做得很好""做得很好""做得很好"[7]"繼續(xù)加油""做得很好"注意:repeat是無限循環(huán)語句,需要使用break語句跳出循環(huán)。循環(huán)結(jié)構(gòu)循環(huán)語句:repeat控制語句:break>pv<-c(40,55,70,95,82,100,66,90)>i<-1>result<-"">repeat{+if(i>length(pv)){+break+}+if(pv[i]<60){+result[i]<-"需要加強(qiáng)"+}elseif(pv[i]<=80){+result[i]<-"繼續(xù)加油"+}else{+result[i]<-"做得很好"+}+i<-i+1+}>result基本控制結(jié)構(gòu)順序結(jié)構(gòu)分支結(jié)構(gòu):if-else,switch循環(huán)結(jié)構(gòu):for,while,repeat,break,next小結(jié)練習(xí):掌握本講中的應(yīng)用示例。編寫函數(shù)自定義函數(shù):function()的用法:myfunction為函數(shù)名稱,大括號{}內(nèi)的語句為函數(shù)體。arglist為函數(shù)中的參數(shù)列表,是在函數(shù)體內(nèi)部將要處理的值,只在函數(shù)內(nèi)部使用。return()是函數(shù)的返回值。自定義函數(shù)的編寫Myfunction<-function(arglist){ statements return(object)}函數(shù)名輸入?yún)?shù)函數(shù)返回值完整的函數(shù)體包括三個部分:異常處理,運(yùn)算過程,返回值。很多時候簡化函數(shù)體。異常處理:輸入的數(shù)據(jù)不能滿足函數(shù)計算的要求,或者類型不符,應(yīng)設(shè)計相應(yīng)的程序代碼提示哪個地方出現(xiàn)錯誤。運(yùn)算過程:包括具體的運(yùn)算步驟,該函數(shù)要完成的功能。返回值:return(),遇到return(),程序會終止運(yùn)行。函數(shù)的編寫求向量中的偶數(shù)個數(shù)函數(shù)體:異常處理運(yùn)算過程返回值函數(shù)的編寫:示例>Ans<-function(x){+k=0+stopifnot(is.numeric(x))+for(iinx){+if(i%%2==0){+k=k+1+}+}+return(k)+}>Ans(1:10)[1]5函數(shù)的編寫:示例>S<-function(x,y){+a<-x+y+return(a)+}>S(2,3)[1]5>norm<-function(x)sqrt(x%*%x)>norm(1:4)[,1][1,]5.477226%*%用于將矩陣與其轉(zhuǎn)置相乘。>(1:4)[1]1234>(1:4)%*%(1:4)[,1][1,]30>sqrt((1:4)%*%(1:4))[,1][1,]5.477226>class(sqrt((1:4)%*%(1:4)))[1]"matrix"可以自行分解測試函數(shù)的編寫:示例>(function(x,y){z<-x^2+y^2;x+y+z})(0:7,1)[1]2481422324458>a<-function(x,y){z<-x^2+y^2;x+y+z}>a(0:7,1)[1]2481422324458函數(shù)的嵌套函數(shù)內(nèi)變量的作用域函數(shù)的編寫>S<-function(x,y){+a<-x+y+b<-function(){+return(a*2)+}+return(b())+}>S(2,3)[1]10自定義函數(shù):function()自定義函數(shù)的用法函數(shù)的嵌套和變量的作用域函數(shù)體小結(jié)apply函數(shù)族數(shù)據(jù)批量處理的方法:循環(huán)操作、函數(shù)操作循環(huán)操作:for或while的每次相互獨(dú)立的操作,效率較低。函數(shù)操作:對一批數(shù)據(jù)做相同的處理,也稱為向量化操作,快速簡潔。apply函數(shù)族是一組函數(shù):apply,lapply,sapply,tapply,mapply,rapply,vapply,eapply。能夠?qū)?shù)據(jù)進(jìn)行向量化操作,快速實(shí)現(xiàn)對數(shù)據(jù)的循環(huán)、分組、過濾、控制,返回結(jié)果。apply函數(shù)族apply函數(shù)族>?applyapply(x,MARGIN,FUN,…)#把FUN函數(shù)運(yùn)用到x數(shù)據(jù)的第MARGIN維度上其中:x表示需要處理的數(shù)據(jù);MARGIN表示對哪個維度使用函數(shù);FUN是指所使用的函數(shù),可以是自定義的函數(shù),也可以是R自帶的函數(shù);
”…”表示FUN函數(shù)的一些參數(shù)simplify表示對輸出的數(shù)據(jù)的簡化;INDEX是一系列因子,和x的長度是一樣的,表示處理數(shù)據(jù)時的索引。
apply函數(shù)族apply函數(shù)族:示例>(x<-matrix(1:20,ncol=4))
[,1]
[,2]
[,3][,4][1,]1
6
11
16[2,]2
7
12
17[3,]3
8
13
18[4,]4
9
14
19[5,]5
10
15
20>apply(x,1,mean)[1]8.59.510.511.512.5>apply(x,2,mean)[1]381318>apply(x,1,max)[1]1617181920維度為1:行維度為2:列mean:取平均值apply函數(shù)族函數(shù)名稱使用對象返回結(jié)果apply()矩陣、數(shù)組、數(shù)據(jù)框向量、數(shù)組、列表lapply()列表、向量列表sapply()列表、數(shù)據(jù)框、向量向量、數(shù)組tapply()不規(guī)則數(shù)組列表mapply()列表、向量列表tmlsveapplyrapply函數(shù)族:以iris鳶尾花卉數(shù)據(jù)集示例iris鳶尾花卉數(shù)據(jù)集,是常用的分類實(shí)驗(yàn)數(shù)據(jù)集,包含150條數(shù)據(jù)樣本。樣本分為3類(Setosa,Versicolour,Virginica),每類50條,每條數(shù)據(jù)包含5個屬性:花萼長度,花萼寬度,花瓣長度,花瓣寬度和類別。>class(iris)[1]"data.frame">dimnames(iris)[[2]]#
顯示列的名字,等同于colnames(iris)[1]"Sepal.Length""Sepal.Width""Petal.Length""Petal.Width""Species">head(iris)Sepal.LengthSepal.WidthPetal.LengthPetal.WidthSpecies15.13.51.40.2setosa24.93.01.40.2setosa34.73.21.30.2setosa44.63.11.50.2setosa55.03.61.40.2setosa65.43.91.70.4setosaapply函數(shù)族:以iris鳶尾花卉數(shù)據(jù)集示例>apply(iris[,1:4],1,mean)#前四列數(shù)據(jù),按行,求均值
[1]2.5502.3752.3502.3502.5502.8502.4252.5252.2252.4002.7002.500[13]2.3252.1252.8003.0002.7502.5752.8752.6752.6752.6752.3502.650[25]2.5752.4502.6002.6002.5502.4252.4252.6752.7252.8252.4252.400[37]2.6252.5002.2252.5502.5252.1002.2752.6752.8002.3752.6752.350[49]2.6752.4754.0753.9004.1003.2753.8503.5753.9752.9003.8503.300[61]2.8753.6503.3003.7753.3503.9003.6503.4003.6003.2753.9253.550[73]3.8003.7003.7253.8503.9504.1003.7253.2003.2003.1503.4003.850[85]3.6003.8754.0003.5753.5003.3253.4253.7753.4002.9003.4503.525[97]3.5253.6752.9253.4754.5253.8754.5254.1504.3754.8253.4004.575[109]4.2004.8504.2004.0754.3503.8004.0254.3004.2005.1004.8753.675[121]4.5253.8254.8003.9254.4504.5503.9003.9504.2254.4004.5505.025[133]4.2503.9253.9254.7754.4254.2003.9004.3754.4504.3503.8754.550[145]4.5504.3003.9254.1754.3253.950>apply(iris[,1:4],2,mean)#前四列數(shù)據(jù),按列,求均值
Sepal.LengthSepal.WidthPetal.LengthPetal.Width5.8433333.0573333.7580001.199333apply函數(shù)族:以iris鳶尾花卉數(shù)據(jù)集示例>tapply(iris$Sepal.Length,iris$Species,mean)
setosaversicolorvirginica5.0065.9366.588apply函數(shù)族>?lapply>?sapply>?vapplyapply函數(shù)族:以iris鳶尾花卉數(shù)據(jù)集示例>lapply(iris[,1:4],mean)
$`Sepal.Length`[1]5.843333
$Sepal.Width[1]3.057333
$Petal.Length[1]3.758
$Petal.Width[1]1.199333lapply#把函數(shù)FUN運(yùn)用到列表的每一個元素對列表、數(shù)據(jù)框數(shù)據(jù)集進(jìn)行循環(huán),返回值為列表apply函數(shù)族:以iris鳶尾花卉數(shù)據(jù)集示例>sapply(iris[,1:4],mean)Sepal.LengthSepal.WidthPetal.LengthPetal.WidthSpecies5.8433333.0573333.7580001.199333NA
sapply#是lapply函數(shù)更加友好的版本R語言中,使用向量化操作代替循環(huán)操作。apply函數(shù)族,能夠把函數(shù)按照某種方式運(yùn)用于數(shù)據(jù)對象上,實(shí)現(xiàn)對數(shù)據(jù)的循環(huán)、分組、過濾、控制等操作。常用函數(shù):apply,tapply,lapply,sapply。常用的實(shí)驗(yàn)數(shù)據(jù)集:iris鳶尾花卉數(shù)據(jù)集。小結(jié)數(shù)據(jù)的輸入輸出R可以從鍵盤、文本文件、MicrosoftExcel和Access、流行的統(tǒng)計軟件、特殊格式的文件,以及多種關(guān)系型數(shù)據(jù)庫中導(dǎo)入數(shù)據(jù)。數(shù)據(jù)源TXTCSV經(jīng)常使用的文本文件:txt、csv文本文件可被幾乎所有的數(shù)據(jù)分析軟件讀取。通用格式為分隔符值:逗號分隔值(CSV),制表符分隔值(TXT)。導(dǎo)入方法使用命令來導(dǎo)入導(dǎo)出數(shù)據(jù)。如果使用RStudio,可以使用其提供的數(shù)據(jù)導(dǎo)入功能。數(shù)據(jù)的導(dǎo)入矩形(類似電子表格的)數(shù)據(jù)通常存儲在帶有分隔符的文件中,特別是逗號分隔值(CSV)和制表符分隔值(TXT)文件。read.table()函數(shù)讀取這些分隔符文件,并將結(jié)果存儲在數(shù)據(jù)框中。CSV和TXT文件
>library(learningr)>deer_file<-system.file('extdata’,'RedDeerEndocranialvolume.dlm',+package='learningr')>deer_data<-read.table(deer_file,header=TRUE,fill=TRUE)>head(deer_data)SkullIDVolCTVolBeadVolLWHVolFinarelliVolCT2VolBead2VolLWH21DIC443893751484337NANANA2B113893701722377NANANA3DIC903523451495328NANANA4DIC833883701683377NANANA5DIC7873753551458328NANANA6DIC15733253201363291NANANAread.table()的參數(shù):header=TRUE,是否有標(biāo)題行。sep=‘’,使用哪個字符作為字段之間的分隔符。nrow可以指定讀取數(shù)據(jù)的行數(shù)。skip決定跳過文件開始的多少行。fill=TRUE會使用NA值來代替那些缺失的值。更多高級選項(xiàng)包括:覆蓋默認(rèn)的行名、列名和類,指定輸入文件的字符編碼,以及輸入的字符串格式的列如何聲明。其他輸入輸出函數(shù):read.csv,write.table和write.csv。CSV和TXT文件如果文件的結(jié)構(gòu)松散,可先讀入文件中的所有文本行,再對其內(nèi)容進(jìn)行分析或操作。使用readLines()來讀取文件,writeLines()寫操作。非結(jié)構(gòu)化文本文件>text_file<-system.file('extdata’,+'shakespeare.s.The.Tempest..from.Project.Gutenberg.pg2235.txt',+package='learningr')>the_tempest<-readLines(text_file)>head(the_tempest)[1]"***TheProjectGutenberg'sEtextofShakespeare'sFirstFolio***"[2]"***************************TheTempest**************************"[3]""[4]“Thisisour3rdeditionofmostoftheseplays.Seethe(略)>writeLines(text_file,"shakespeare's,backwards.txt")在Windows系統(tǒng)中,可以使用RODBC包、xlsx包、XLConnect等包來訪問Excel文件。導(dǎo)入Excel數(shù)據(jù)>library(xlsx)>file<-'sample.xls'>res<-read.xlsx(file,1)>detach(package:xlsx)#利用XLConnect包讀取Excel數(shù)據(jù)>library(XLConnect)>wb<-loadWorkbook('sample.xls')>xldf<-readWorksheet(wb,sheet=getsheets(wb)[1])統(tǒng)計某文檔中各單詞出現(xiàn)的頻次,并按頻次排序。練習(xí)>wal<-file('/Wal.txt’)>findwords<-function(tf){+txt<-scan(tf,what="")+w1<-list()+for(iin1:length(txt)){+wrd<-txt[i]+w1[[wrd]]<-c(w1[[wrd]],i)+}+return(w1)+}>freqwl<-function(wrdlist){+freqs<-sapply(wrdlist,length)+return(wrdlist[order(freqs)])+}>word<-findwords(wal)>wordl<-freqwl(word)>wor<-sapply(wordl,length)>barplot(wor[seq(length(wor),length(wor)-10,by=-1)])網(wǎng)絡(luò)數(shù)據(jù)正在逐漸增多,R中有一些用于抓取網(wǎng)絡(luò)數(shù)據(jù)的包。讀取網(wǎng)絡(luò)數(shù)據(jù)quantmod包:用于金融建模的擴(kuò)展包。XML包:包含了一些抓取網(wǎng)絡(luò)數(shù)據(jù)的常用函數(shù)。RCurl包:提供了由R到libcurl庫的接口,實(shí)現(xiàn)HTTP的一些功能。例如,從服務(wù)器下載文件、保持連接、上傳文件、采用二進(jìn)制格式讀取、句柄重定向、密碼認(rèn)證等。爬取蘋果公司上市至今的每天股價數(shù)據(jù),并畫出技術(shù)分析圖進(jìn)行研究。quantmod舉例#利用quantmod包抓取股票數(shù)據(jù)#抓取蘋果公司每日的股票信息library(quantmod)getSymbols('AAPL',src='yahoo‘)[1]"AAPL"#查看最后六天的股票記錄tail(AAPL)AAPL.OpenAAPL.HighAAPL.LowAAPL.CloseAAPL.VolumeAAPL.Adjusted2017-08-17160.52160.71157.84157.8627940600157.86......#主繪圖函數(shù)chartSeries(AAPL,theme='white')#三個基本圖形barChart(AAPL,theme='white')#條形圖candleChart(AAPL,theme='white')#蠟燭圖lineChart(AAPL,theme='white')#線圖#技術(shù)分析圖chartSeries(AAPL,theme='white')require(TTR)addADX()#平均指向指標(biāo)ADXaddATR()#平均真實(shí)波幅指標(biāo)ARTaddBBands()#布林線指標(biāo)BBandsaddCCI()#順勢指標(biāo)CCIaddEMA()#指數(shù)平均指標(biāo)EMA從雅虎爬取蘋果公司2007-01-03至2017-08-24的每天股價數(shù)據(jù),并畫出技術(shù)分析圖進(jìn)行研究。quantmod舉例小結(jié)數(shù)據(jù)源:R可以從鍵盤、文本文件、MicrosoftExcel和Access、流行的統(tǒng)計軟件、特殊格式的文件,以及多種關(guān)系型數(shù)據(jù)庫中導(dǎo)入數(shù)據(jù)。常用的文本文件:csv,txt數(shù)據(jù)文件。一些擴(kuò)展包可以提供多種類型數(shù)據(jù)源的輸入輸出功能。45綜合實(shí)驗(yàn)掌握控制結(jié)構(gòu)(分支、循環(huán))的使用方法。掌握函數(shù)和自定義函數(shù)的方法。掌握apply函數(shù)族的使用方法。掌握輸入輸出外部數(shù)據(jù)的方法。熟悉集成開發(fā)環(huán)境RStudio。能夠通過help方法自學(xué)函數(shù)及其中參數(shù)的用法。實(shí)驗(yàn)?zāi)繕?biāo)第3章講義中的案例第3章綜合實(shí)驗(yàn)第3章使用的函數(shù)第3章思考與練習(xí)實(shí)驗(yàn)內(nèi)容及資料目標(biāo):掌握控制結(jié)構(gòu)的使用方法;掌握自定義函數(shù)的方法內(nèi)容:實(shí)驗(yàn)1:編寫自定義函數(shù)實(shí)驗(yàn)1-1:編寫一個自定義函數(shù),判斷101~200之間有多少個素數(shù),并輸出所有素數(shù)。實(shí)驗(yàn)1-2:編寫一個自定義函數(shù)求兩個矩陣的乘積,并找出乘積矩陣中的最大元素。目標(biāo):掌握控制結(jié)構(gòu)的使用方法;掌握自定義函數(shù)的使用方法內(nèi)容:實(shí)驗(yàn)2:百分制成績換算
定義一個函數(shù),將百分制成績換算為等級制成績,標(biāo)準(zhǔn)為:A(大于等于90)、B(大于等于80)、C(大于等于70)、D(大于等于60)、E(小于60)。并使用這個函數(shù)對一組學(xué)生的百分制成績進(jìn)行換算。目標(biāo):掌握apply函數(shù)族的使用方法;掌握控制結(jié)構(gòu)的使用方法內(nèi)容:實(shí)驗(yàn)3:兩種方法實(shí)現(xiàn)數(shù)據(jù)處理實(shí)驗(yàn)3-1:使用兩種方法(for循環(huán)和apply函數(shù)族),計算列表x<-list(a=1:5,b=exp(0:3))中的各子列表的最大值、最小值與中位數(shù)。實(shí)驗(yàn)3-2:使用兩種方法(for循環(huán)和apply函數(shù)族),計算數(shù)組array(c(1:24),dim=c(2,3,4))中的各行的合計值。目標(biāo):掌握獲取外部數(shù)據(jù)的方法內(nèi)容:實(shí)驗(yàn)4:實(shí)現(xiàn)爬蟲功能(拓展)實(shí)驗(yàn)4-1:簡單爬取北京交通大學(xué)新聞網(wǎng)頁,將新聞題目存儲為txt或csv文件。實(shí)驗(yàn)4-2:爬取當(dāng)當(dāng)網(wǎng)或京東網(wǎng)上關(guān)于數(shù)據(jù)科學(xué)類的圖書排名及價格,將數(shù)據(jù)存儲為.csv文件。實(shí)驗(yàn)4-3:爬取天氣預(yù)報或空氣質(zhì)量相關(guān)的1個月的數(shù)據(jù),將數(shù)據(jù)存儲為csv格式,并使用R語言的apply函數(shù)族計算該月某指標(biāo)的最高值、最低值和均值。思考與討論數(shù)據(jù)可視化繪圖基礎(chǔ)R基本繪圖包:graphics高級繪圖函數(shù):plot()函數(shù),直方圖、密度圖、箱線圖、餅圖、散點(diǎn)圖、熱力圖……低級繪圖函數(shù):顏色,點(diǎn),文本,線條,圖例,坐標(biāo)軸……繪圖進(jìn)階R拓展繪圖包:ggplot2繪制更豐富的圖形:ggplot()函數(shù)綜合實(shí)驗(yàn)?zāi)夸浝L圖基礎(chǔ)R基本繪圖包:graphics高級繪圖函數(shù)繪制多種圖形:plot()函數(shù)直方圖、密度圖、箱線圖、餅圖、散點(diǎn)圖、熱力圖……低級繪圖函數(shù)顏色,點(diǎn),文本,線條,圖例,坐標(biāo)軸……圖形組合和保存組合多幅圖形輸出圖形到屏幕、文件目錄基本繪圖包graphics提供豐富的數(shù)據(jù)可視化函數(shù)高級繪圖函數(shù)繪制完整的圖形低級繪圖函數(shù)增加圖形中的元素R基本繪圖包:graphics>help(graphics)繪圖函數(shù):plot()>help(plot)常用繪圖函數(shù):plot()可繪制多種類型的圖形散點(diǎn)圖折線圖、點(diǎn)線圖、階梯圖等是一個泛型函數(shù)>plot(xy坐標(biāo)數(shù)據(jù),type類型,main標(biāo)題,sub副標(biāo)題,xlabX軸標(biāo)題,ylabY軸標(biāo)題...)美國MotorTrend雜志收集的1973到1974年期間32種車型的11個指標(biāo):油耗及10個與設(shè)計及性能方面的指標(biāo)。mtcars數(shù)據(jù)集>help(mtcars)>help(mtcars)#查看幫助文檔>head(mtcars)#顯示前幾行數(shù)據(jù)>nrow(mtcars)#行數(shù)>attach(mtcars)>plot(wt,mpg)>detach(mtcars)繪圖函數(shù):plot()橫坐標(biāo)(重量):wt:Weight(1000lbs)縱坐標(biāo)(里程):mpg:Miles/Gallon>plot(mtcars$wt,mtcars$mpg)#以mtcars數(shù)據(jù)集為例,顯示重量和里程的關(guān)系?;?attach():把數(shù)據(jù)庫加入R的搜索路徑>attach(mtcars)>plot(wt,mpg,type='h',col='red')>detach(mtcars)繪圖函數(shù):plot()橫坐標(biāo)(重量):wt:Weight(1000lbs)縱坐標(biāo)(里程):mpg:Miles/Gallon#'h'for'histogram'like(or'high-density')verticallines#plot函數(shù)中的參數(shù)的使用繪圖函數(shù):plot()plot()函數(shù)產(chǎn)生一個圖形使用plot等高級繪圖函數(shù),新建一個圖形。通過對函數(shù)的參數(shù)賦值,確定圖形的基本樣式。若需要更為豐富的圖形元素,可逐條輸入低級繪圖函數(shù)實(shí)現(xiàn)。豐富的高級繪圖函數(shù)其他高級繪圖函數(shù)高級繪圖函數(shù)函數(shù)功能plot()繪制散點(diǎn)圖等多種圖形hist()繪制直方圖boxplot()繪制箱線圖stripchart()繪制點(diǎn)圖(帶狀圖)barplot()繪制條形圖dotplot()繪制點(diǎn)圖pie()繪制餅圖matplot()繪制數(shù)學(xué)圖形其他高級繪圖函數(shù)>x<-1:5>par(font=1)#設(shè)定公共的圖形參數(shù)>hist(x,main='直方圖',xlab='x')#繪制直方圖>stripchart(x,main=‘點(diǎn)圖’,xlab=‘x’,ylab=‘y’)#繪制一維散點(diǎn)圖>boxplot(x,main=‘箱線圖,xlab=’x‘,ylab=’y’)#繪制箱線圖>barplot(x,names.arg=c('A','B','C','D','E'))#繪制條形圖>pie(x,labels=c('A','B','C','D','E'))#繪制餅圖>x=1:30#繪制余弦曲線>y=cos(x*pi/15)>matplot(x,y,pch=21)#繪制數(shù)學(xué)圖形其他高級繪圖函數(shù)>attach(mtcars)#以mtcars為例>hist(wt)#繪制直方圖>boxplot(wt)#繪制箱線圖>bardata<-table(cyl,carb)>#繪制條形圖>barplot(bardata,beside=TRUE)>pie(table(cyl))#繪制餅圖>detach(mtcars)#wt:重量,cyl:氣缸數(shù),carb:化油器數(shù)量#table函數(shù)用于記錄頻數(shù)(列聯(lián)表)詳見后面章節(jié)圖形中的元素顏色、文字、點(diǎn)、線、坐標(biāo)軸、主標(biāo)題、副標(biāo)題、軸標(biāo)題、圖例低級繪圖函數(shù)低級繪圖函數(shù):顏色>plot(c(1:9),type='b',col='black')>text(6,5,labels='文字',col='red')>points(2,5,col='blue')設(shè)置顏色:在函數(shù)中使用參數(shù)‘col=顏色名’來設(shè)置顏色colors()函數(shù):顯示R語言中所有可用的657種固定顏色名低級繪圖函數(shù):顏色>colors()[1:20][1]'white''aliceblue''antiquewhite''antiquewhite1''antiquewhite2'[6]'antiquewhite3''antiquewhite4''aquamarine''aquamarine1''aquamarine2'[11]'aquamarine3''aquamarine4''azure''azure1''azure2'[16]'azure3''azure4''beige''bisque''bisque1'>pdf(‘colors-bar.pdf’,height=120)#在工作目錄下自動生成空文件>par(mar=c(0,10,3,0)+0.1,yaxs='i')#設(shè)置公共圖形參數(shù)
>#繪制條形圖>barplot(rep(1,length(colors())),col=rev(colors()),+names.arg=rev(colors()),horiz=T,las=1,+xaxt='n’,main=expression('Barsofcolorsin'~italic(colors())))>dev.off()#關(guān)閉基于文件的圖形設(shè)備,即完成文件的寫入示例:將顏色名稱及其對應(yīng)的顏色輸出在一個PDF文件中。低級繪圖函數(shù):顏色低級繪圖函數(shù):顏色>barplot(c(1:5))>barplot(c(1:5),col=c('red','white','blue','black','orange'))使用rgb函數(shù),通過數(shù)值設(shè)置顏色。
低級繪圖函數(shù):顏色>plot(c(1:9),type='b',col='black')>text(6,5,labels='文字',col=newCol)>newCol<-rgb(red=126,green=255,blue=211,max=255)rainbow():彩虹系列顏色低級繪圖函數(shù):顏色調(diào)色板特定顏色主題的配色方案>barplot(rep(1,41),+col=c(rainbow(n=6,start=0,end=1/6),'white',+rainbow(n=6,start=1/6,end=2/6),'white’,+ rainbow(n=6,start=2/6,end=3/6),'white’,+ rainbow(n=6,start=3/6,end=4/6),'white’,+ rainbow(n=6,start=4/6,end=5/6),'white',+rainbow(n=6,start=5/6,end=1)))>axis(side=1,at=seq(from=3,length.out=6,by=8.5),+labels=c('赤色','黃色','綠色','青色','藍(lán)色','紫色’),cex=0.75)>par(mfrow=c(2,2))#設(shè)置顯示圖形的行和列數(shù)>barplot(rep(1,6),col=heat.colors(6),main='col=heat.colors(6))')>barplot(rep(1,6),col=terrain.colors(6),main='col=terrain.colors(6))')>barplot(rep(1,6),col=topo.colors(6),main='col=topo.colors(6))')>barplot(rep(1,6),col=cm.colors(6),main='col=cm.colors(6))')>par(mfrow=c(1,1))#恢復(fù)其他主題配色:heat.colors()、terrain.colors()、topo.colors()、cm.colors()等低級繪圖函數(shù):顏色調(diào)色板使用brewer.pal()函數(shù)生成顏色配色方案:連續(xù)型(seq):生成一系列連續(xù)漸變的顏色,可標(biāo)記連續(xù)型數(shù)值的大小。極端型(div):生成用深色強(qiáng)調(diào)兩端、淺色標(biāo)示中部的系列顏色,可標(biāo)記數(shù)據(jù)中的離群點(diǎn)。離散型(qual):生成一系列彼此差異比較明顯的顏色,通常用來標(biāo)記分類數(shù)據(jù)。顏色擴(kuò)展包:RColorBrewer顏色擴(kuò)展包:RColorBrewer>library(RColorBrewer)>display.brewer.all(type='seq')>#使用YlOrRd組的第3~8種顏色>barplot(rep(1,6),+col=brewer.pal(9,'YlOrRd')[3:8])顏色-賞析RColorBrewer包中連續(xù)型系列顏色:共18組,每組9個漸變顏色。顏色-賞析RColorBrewer包中的極端型系列顏色:共9組,每組11個漸變顏色。>library(RColorBrewer)>display.brewer.all(type='div')>#使用BrBG組的第3~8種顏色>barplot(rep(1,6),+col=brewer.pal(11,'BrBG')[3:8])顏色-賞析RColorBrewer包中離散型系列顏色:共8組,每組多個漸變顏色。>library(RColorBrewer)>display.brewer.all(type='qual')設(shè)置顏色:在函數(shù)中使用參數(shù)'col=顏色名'來設(shè)置colors():查看顏色名rgb():
通過數(shù)值設(shè)置顏色顏色調(diào)色板:rainbow()等顏色擴(kuò)展包:RColorBrewer連續(xù)型(seq)、極端型(div)、離散型(qual)系列顏色低級繪圖函數(shù):顏色小結(jié)text()函數(shù)參數(shù)font:分別用1、2、3、4表示正常體、粗體、斜體和粗斜體低級繪圖函數(shù):文字文字元素可以設(shè)置的參數(shù):字體(font)、顏色(col)、大小(縮放倍數(shù)cex)等。>plot(c(0:5),col='white')>text(2,4,labels='font=1:正常字體(默認(rèn))',font=1)>text(3,3,labels='font=2:粗體字體',font=2)>text(4,2,labels='font=3:斜體字體',font=3)>text(5,1,labels='font=4:粗斜體字體',font=4)點(diǎn)元素可以設(shè)置的參數(shù):樣式(pch)、顏色(col)、大小(縮放倍數(shù)cex)等。points()函數(shù)主要參數(shù)低級繪圖函數(shù):點(diǎn)參數(shù)描述pch點(diǎn)的樣式,取整數(shù)0-25或字符'*','、','.','o','O','0','+','-','|'等cex點(diǎn)的大小,1(默認(rèn))表示不縮放,小于1表示縮放,大于1表示放大col點(diǎn)邊框填充的顏色bg點(diǎn)內(nèi)部填充的顏色,僅限21-25樣式的點(diǎn)lwd點(diǎn)邊框的寬度,1(默認(rèn))表示正常寬度,小于1表示縮放,大于1表示放大>plot(1,col='white',xlim=c(1,9),ylim=c(1,7))>for(iinc(0:25)){#循環(huán)在x、y位置放置點(diǎn)+x<-(i%/%5)*1+1+y<-6-(i%%5)+if(length(which(c(21:25)==i)>=1)){+points(x,y,pch=i,bg='red',cex=2)+}else{+points(x,y,pch=i,cex=2)+}+#21-25可以設(shè)置背景顏色+text(x+0.2,y+0.2,labels=paste('pch=',i))+}低級繪圖函數(shù):點(diǎn)低級繪圖函數(shù):線曲線:lines()函數(shù)、直線:abline()函數(shù)、線段:segments()函數(shù)類型形式說明直線abline(a,b)繪制y=a+bx直線水平線abline(h=y)繪制水平直線垂直線abline(v=x)繪制垂直直線線性模型回歸直線abline(lm,obj)繪制lm函數(shù)的回歸直線模型lines():靈活繪制線abline():繪制直線線條樣式(lty)低級繪圖函數(shù):線線可以設(shè)置的參數(shù):線條樣式(lty)、顏色(col)、粗細(xì)(lwd)等數(shù)值字符串說明數(shù)值字符串說明0'black'不畫線4'dot-dash'點(diǎn)畫線1'solid'實(shí)線5'longdash'長畫線2'dashed'虛線6'twodash'點(diǎn)長畫線3'dotted'點(diǎn)線
>data<-matrix(rep(rep(1:7),10),ncol=10,nrow=7)>plot(data[1,],type='l',lty=0,ylim=c(1,8),xlim=c(-1,10),axes=F)>text(0,1,labels='lty=0')>for(iinc(2:7)){+lines(data[i,],lty=i-1)+text(0,i,labels=paste('lty=',i-1))+}低級繪圖函數(shù):線示例:查看lty參數(shù)取值為0~6時的樣式>data<-matrix(rep(rep(1:6),10),ncol=10,nrow=6)>plot(data[1,],type='l',lwd=0.5,ylim=c(1,8),xlim=c(-1,10),axes=F)>text(0,1,labels='lwd=0.5')>lines(data[2,],type='l',lwd=0.8);text(0,2,labels='lwd=0.8')>lines(data[3,],type='l',lwd=1);text(0,3,labels='lwd=1')>lines(data[4,],type='l',lwd=1.5);text(0,4,labels='lwd=1.5')>lines(data[5,],type='l',lwd=2);text(0,5,labels='lwd=2')>lines(data[6,],type='l',lwd=4);text(0,6,labels='lwd=4')低級繪圖函數(shù):線示例:查看線條寬度lwd(默認(rèn)為1不縮放,小于1時縮小,大于1時放大)lines()函數(shù),可通過散點(diǎn)樣本的坐標(biāo)繪制任意曲線。低級繪圖函數(shù):線>#drawasmoothlinethroughascatterplot>plot(cars,main='StoppingDistanceversusSpeed')>lines(stats::lowess(cars))#繪制局部加權(quán)回歸(lowess)平滑曲線標(biāo)題:包括主標(biāo)題、副標(biāo)題、x軸標(biāo)題、y軸標(biāo)題。title()函數(shù)低級繪圖函數(shù):標(biāo)題參數(shù)說明實(shí)例main主標(biāo)題main='主標(biāo)題'main=list('主標(biāo)題',font=3,col='red',cex=1.5)sub副標(biāo)題sub=list('副標(biāo)題',font=3,col='red',cex=1.2)xlabx軸標(biāo)題xlab=list('x軸標(biāo)題,font=3,col='red',cex=0.75)ylaby軸標(biāo)題ylab=list('y軸標(biāo)題,font=3,col='red',cex=0.75)>data<-data.frame(pre=c(113,134,123,145,137,196,187),+now=c(129,122,134,149,146,215,208))>mycol=c('azure4','brown4')>barplot(as.matrix(rbind(data$pre,data$now)),+beside=TRUE,ylim=c(0,550),col=mycol,axes=F,+main=list('本周趨勢分析圖',cex=1.5,col='red',font=3),+sub=paste('數(shù)據(jù)來源:某電商網(wǎng)站'),+ylab='網(wǎng)站日頁面瀏覽量')>axis(2)低級繪圖函數(shù):標(biāo)題示例:在繪圖函數(shù)中直接設(shè)置參數(shù)>data<-data.frame(pre=c(113,134,123,145,137,196,187),+now=c(129,122,134,149,146,215,208))>mycol=c('azure4','brown4')>barplot(as.matrix(rbind(data$pre,data$now)),+beside=TRUE,ylim=c(0,ylim.max),col=mycol,axes=F)>title(main=list('本周趨勢分析圖’,+cex=1.5,col='red',font=3),+sub='數(shù)據(jù)來源:某電商網(wǎng)站'),+ylab='網(wǎng)站日頁面瀏覽量')>axis(2)低級繪圖函數(shù):標(biāo)題示例:通過title()函數(shù)設(shè)置參數(shù)當(dāng)圖形中包含多組數(shù)據(jù)時,圖例可以幫助辨別legend()函數(shù)低級繪圖函數(shù):圖例>text.legend<-c('上周','本周')>legend('top',pch=c(15,15),+legend=text.legend,+col=mycol,horiz=TRUE)坐標(biāo)軸:主坐標(biāo)軸(x軸和y軸),副坐標(biāo)(右側(cè)的縱坐標(biāo))axis()函數(shù):可在上、下、左、右4個邊上設(shè)置坐標(biāo)軸范圍/刻度標(biāo)記等grid()函數(shù):網(wǎng)格線低級繪圖函數(shù):坐標(biāo)軸>x.text=c("1月","2月","3月","4月","5月","6月","7月",+"8月","9月","10月","11月","12月")>sales.volume=c(150000,190000,180000,92000,68000,90000,+56000,186000,100000,89000,90000,150000)>plot(sales.volume,type="b",ylim=c(20000,250000),xaxt="n",+main="月銷量趨勢圖",xlab="月份",ylab="銷量(元)")>axis(1,at=1:12,labels=x.text,tick=FALSE)>grid(nx=NA,ny=8,lwd=1,lty=2,col="blue")使用par()或layout()函數(shù)組合多幅圖形為一幅圖形圖形組合參數(shù)描述mfrow/mfcol頁面擺放,把一個頁面平分成多行和多列,mfrow從左到右作圖,mfcol從上到下作圖mai/mar圖形邊距,mai(英寸邊距)和mar(行邊距),四個邊距的順序是下、左、上、右mgp坐標(biāo)軸位置,依次為標(biāo)題、刻度標(biāo)簽和刻度的位置oma外邊界寬度;類似mar,默認(rèn)為c(0,0,0,0)在RStudio集成開發(fā)環(huán)境中,生成的圖形將直接顯示在界面右側(cè)。還可以通過函數(shù)windows()和X11()將圖片輸出到屏幕,windows()用于Windows系統(tǒng),X11()用于UNIX類型系統(tǒng)的桌面系統(tǒng)。圖形保存輸出到屏幕>windows()#打開圖形設(shè)備界面>plot(iris[,1],iris[,2])#數(shù)據(jù)集中第1和第2列的數(shù)據(jù)集合>X11()#打開圖形設(shè)備界面>plot(iris[,3],iris[,4])數(shù)據(jù)集中第3和第4列數(shù)據(jù)集合圖形保存輸出到文件(多種文件格式)>pdf(“filename.pdf”)>png(“filename.png”)>jpeg(“filename.jpeg”)>bmp(“filename.bmp”)#自動生成準(zhǔn)備保存圖形的空文件,默認(rèn)在工作目錄下。>pdf(“p.pdf”)>plot(iris[,3],iris[,4])#生成圖形,不顯示在屏幕中>dev.off()#將圖形寫入基于文件的設(shè)備中,結(jié)束關(guān)聯(lián)R基本繪圖包:graphics高級繪圖函數(shù):plot()函數(shù),直方圖、密度圖、箱線圖、餅圖、散點(diǎn)圖……低級繪圖函數(shù):顏色,點(diǎn),文本,線條,圖例,坐標(biāo)軸……圖形組合和保存練習(xí):熟悉本章節(jié)示例代碼,掌握常用繪圖函數(shù)的用法。使用數(shù)據(jù)集,通過繪制圖形了解數(shù)據(jù)關(guān)系。小結(jié)繪圖進(jìn)階R拓展繪圖包:ggplot2包圖形是由從數(shù)據(jù)到幾何對象、圖形屬性的映射包括統(tǒng)計變換的豐富函數(shù)支持qplot():類似plot()函數(shù)ggplot():將數(shù)據(jù)與圖形分離,按圖層作圖,用“+”號連接函數(shù)繪制更豐富的圖形其他第三方繪圖包目錄圖形是由從數(shù)據(jù)到幾何對象、圖形屬性的映射。提供豐富的函數(shù)圖形屬性函數(shù)(aestheticattributes):aes()幾何對象函數(shù)(geometricobject):geom_XXX()
統(tǒng)計變換函數(shù)(statisticaltransformation):stat_XXX()
標(biāo)度繪圖函數(shù):scale_XXX()其它修飾函數(shù):標(biāo)題、圖例、分面等。ggplot2繪圖包幾何繪圖函數(shù)幾何繪圖函數(shù)描述geom_area面積圖(連續(xù)的條形圖)geom_bar條形圖geom_boxplot箱線圖geom_contour等高線圖geom_density密度圖geom_errorbar誤差線geom_histogram直方圖geom_jitter點(diǎn)圖(自動添加擾動)geom_line線geom_point散點(diǎn)圖geom_text文本geom_XXX()統(tǒng)計繪圖函數(shù)統(tǒng)計繪圖函數(shù)描述stat_abline添加線條,用斜率和截距表示stat_boxplot繪制帶觸須的箱線圖stat_contour繪制三維數(shù)據(jù)的等高線圖stat_density繪制密度圖stat_density2d繪制二維密度圖stat_function添加函數(shù)曲線stat_hline添加水平線stat_smooth添加平滑曲線stat_sum繪制不重復(fù)的取值之和stat_summary繪制匯總數(shù)據(jù)stat_XXX()功能:快速作圖(quickplot)使用方法與plot()函數(shù)類似常用函數(shù):qplot()>library(ggplot2)>qplot(Sepal.Length,Sepal.Width,data=iris,colour=Species,shape=Species,+main=”花萼長度和寬度散點(diǎn)圖”)>qplot(Species,Sepal.Length,data=iris,geom=”boxplot”,fill=Species,+main=“不同種類的花萼長度箱線圖”)>qplot(Species,Sepal.Length,data=iris,geom=c(“violin”,”jitter”),+fill=Species,main=”不同種類的花萼長度小提琴圖”)ggplot()函數(shù):生成精美復(fù)雜的圖形數(shù)據(jù)與圖形分離,按圖層作圖。使用ggplot()函數(shù)初始化圖形,用“+”連接函數(shù),構(gòu)成新圖層。常用函數(shù):ggplot()>library(ggplot2)>help(ggplot)常用函數(shù):ggplot()>P<-ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width,colour=Species))data=irisaes(x=Sepal.Length,y=Sepal.Width,colour=Species)aes:將數(shù)據(jù)映射到圖形屬性中x,y:數(shù)據(jù)對坐標(biāo)軸的映射colour:數(shù)據(jù)對顏色的映射>P<-P+geom_point()#通過“+”增加圖層geom_point():幾何繪圖函數(shù)-散點(diǎn)圖常用函數(shù):ggplot()>P<-ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width,colour=Species))>P<-P+geom_point()#通過“+”增加圖層初始化圖形通過+geom_XXX函數(shù)增加圖層>P<-ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width,colour=Species))>P<-P+geom_point(size=3)>P<-P+scale_color_manual(values=c("orange","olivedrab","navy"))>ggsave(file="hello.jpg",width=5,height=4)常用函數(shù):ggplot()示例:改變?nèi)笔☆伾4鎴D形>P<-ggplot(iris,aes(x=Species,y=Sepal.Length,fill=Species))>P<-P+geom_boxplot()>P<-P+labs(title="Species")常用函數(shù):ggplot()示例:生成箱線圖常用函數(shù):ggplot()示例:生成小提琴圖>P<-ggplot(iris,aes(x=Species,y=Sepal.Length,fill=Species))>P<-P+geom_violin()>P<-P+labs(title="Speciesviolin")常用函數(shù):ggplot()示例:生成密度圖>P<-ggplot(data=singer,+aes(x=height,fill=voice.part))>P<-P+geom_density()>P<-P+facet_grid(voice.part~.)facet_grid():圖形的組合繪制3D圖形:plot3D包,plotly包,scatterplot3d包,等繪制交互式Web圖形:rCharts包,htmlwidgets包,等繪制地圖:leaflet包,maps包,等繪制特殊的圖形:氣泡圖、莖葉圖、臉譜圖、相關(guān)圖等第三方繪圖包示例:繪制3D圖形>install.packages("plot3D")#下載plot3D包>library(plot3D)>x<-y<-seq(0,10,by=0.5)#生成[0,10]區(qū)間內(nèi)數(shù)據(jù)的x,y向量>xy<-mesh(x,y)#利用包中的mesh()函數(shù)生成網(wǎng)格數(shù)據(jù),得到列表xy>z<-sin(xy$x)+cos(xy$y)+sin(xy$x)*cos(xy$y)#計算z的網(wǎng)格數(shù)據(jù)>hist3D(x,y,z,phi=45,theta=45,space=0.1,clokey=F,bty="g")#繪制3D直方圖>surf3D(xy$x,xy$y,z,colkey=F,border="black",bty="b2")#繪制3D曲面圖
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度環(huán)保設(shè)施項(xiàng)目履約保證金合同范本2篇
- 個人二手挖掘機(jī)買賣合同(2024年版)4篇
- 二零二五餐飲企業(yè)年度簽單掛賬信用評估合同2篇
- 現(xiàn)代商業(yè)環(huán)境下對公業(yè)務(wù)團(tuán)隊(duì)發(fā)展策略
- 二零二五年度綠色環(huán)保儲藏室購置協(xié)議書4篇
- 2025年度雛雞冷鏈物流配送與銷售合同范本4篇
- 二零二五年度棉花產(chǎn)業(yè)鏈上下游企業(yè)合作框架協(xié)議4篇
- 二零二五年度路燈照明設(shè)備安裝與售后服務(wù)合同4篇
- 二零二五年度大豆產(chǎn)業(yè)鏈環(huán)保治理項(xiàng)目合作協(xié)議4篇
- CFG樁施工服務(wù)合同(2024年度)版
- 三級人工智能訓(xùn)練師(高級)職業(yè)技能等級認(rèn)定考試題及答案
- 華為全屋智能試題
- 第三單元名著導(dǎo)讀《經(jīng)典常談》知識清單 統(tǒng)編版語文八年級下冊
- 第十七章-阿法芙·I·梅勒斯的轉(zhuǎn)變理論
- 焊接機(jī)器人在汽車制造中應(yīng)用案例分析報告
- 合成生物學(xué)在生物技術(shù)中的應(yīng)用
- 中醫(yī)門診病歷
- 廣西華銀鋁業(yè)財務(wù)分析報告
- 無違法犯罪記錄證明申請表(個人)
- 大學(xué)生勞動教育PPT完整全套教學(xué)課件
- 繼電保護(hù)原理應(yīng)用及配置課件
評論
0/150
提交評論