1 / 72

R کارگاه

R کارگاه. R آموزش رسم نمودار ها با محمد حسین دهقان گروه آمار، دانشکده ریاضی دانشگاه سیستان و بلوچستان پاییز 97. R رسم نمودار ها در. عملیات گرافیکی : تابع plot( ) از توابع رسم نمودار که اغلب در نرم افزار R مورد استفاده قرار می گیرد تابع plot() و histogram و ... است.

vanalstyne
Download Presentation

R کارگاه

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. R کارگاه R آموزش رسم نمودار ها با محمد حسین دهقان گروه آمار، دانشکده ریاضی دانشگاه سیستان و بلوچستان پاییز 97

  2. R رسم نمودار ها در • عملیات گرافیکی:تابعplot( ) • از توابع رسم نمودار که اغلب در نرم افزارR مورداستفاده قرار می گیرد تابع plot()وhistogram و ... است. • plot(x,y) • x<-seq(-3,15,len=100) • y<-dnorm(x,5,3) • y1<-dnorm(x,5,4)

  3. Example

  4. Plot()فاکتورهای دستور • plot(x,y,type = "l",col = "red", lwd = 3,lty=1,xlab='X_Axis',ylab='Y_Axis', xlim=c(-4,16) , ylim=c(0,0.16),main = "rnorm(100, mean=5,sd=3)") • lines(x,y1,type = "l",col = "blue", lwd = 3,lty=1,xlab='X_Axis',ylab='Y_Axis', xlim=c(-4,16) , ylim=c(0,0.16),main = "rnorm(100, mean=5,sd=3 and 4)")

  5. Col,lwd,lty,xlab,xlim,main,legend • plot(x,y,type = "l",col = "red", lwd = 3,lty=1,xlab='X_Axis', ylab='Y_Axis', xlim=c(-4,16) , ylim=c(0,0.16),main = "rnorm(100, mean=5,sd=3)") • lines(x,y1,type = "l",col = "blue", lwd = 3,lty=1,xlab='X_Axis', ylab='Y_Axis', xlim=c(-4,16) , ylim=c(0,0.16),main = "rnorm(100, mean=5,sd=3 and 4") • legend("topright", c("Density_Var4","Density_Var3"), pch=21, pt.bg="white", lty=1, col = c("blue","red"))

  6. Legend-plot

  7. رسم داده ها به ترتیب زمان • اگر xبرحسب زمان باشدplot(x) یک نمودار سری زمانی را تولید می کند و اگر x یک بردار عددی باشد یک نمودار با مقادیر داخل بردار در مقابل شاخص های همان مقادیر را تولید می کند. • مثال: • X=c(2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014) • y<-c(5,7,3,2,5,4,7,6,2,8,7,9,5,7) • plot(x,y,type = "l",col = "blue", lwd = 2,main = "Time Series plot for y")

  8. Example-Time Series

  9. Boxpots • دستور plot(x) نیز بدون ذکر زمان ثبت داده ها یک نمودار سری زمانی از متغیر x را نمایش می دهد. همچنین با استفاده از دستور ts.plot( ) نیز می توان نمودار سری زمانی برای داده ها رسم کرد. f یک فاکتور و y یک بردار عددی است. فرم اول یک نمودار میله ای از f را تولید می کند و فرم دوم یک boxplots از y برای هر سطحی از f را تولید می کند. به عنوان مثال: • data = c(1,2,2,3,1,4,4,3,3,1,2,3,5,3,1,5,4,0,0) • f = factor(data) • plot(f)

  10. Histogram

  11. Boxplot2 • یعنی رسم یک نمودارboxplotبه وسیله ی دستور plot( ) و boxplot(y~f )قابل اجرا است. • y<-c(2,5,4,1,3,7,6,8,3,2,0,7,9,0,1,4,6,8,11) • plot(f,y)

  12. Example of Boxplot Graph

  13. Example of Time series • سری زمانی، برای 3 متغیر تصادفی: • require(graphics) • ts.plot(ldeaths, mdeaths, deaths,col=1:3,lwd=2, gpars=list(xlab="year", ylab="deaths", lty=c(1:3)))

  14. T_Graphics

  15. Scatter plot • x<-c(55, 44, 77, 90, 53, 43 ,71 ,44 ,73 ,53 ,85, 30, 77, 55, 62, 68,36 ,61 ,72, 84) • Y=c( 150.7 ,141.7, 176.4 ,196.3, 147.0, 148.9, 173.4, 141.7 ,165.9, 142.3 ,197.4 ,132.2 ,178.1, 153.2 ,161.5, 168.6, 138.0 ,163.4, 168.7, 184.8) • df<-data.frame(Weight=x,Height=y) • plot(df,main=’Hieght per Weight’)

  16. Scatter Plot

  17. نمایش داده های چند متغیره • نرم افزار R دو تابع بسیار کاربردی به منظور نمایش داده های چند متغیره ارائه می کند: • pairs(X) یک ماتریس از نمودارهای پراکندگی دو به دو از متغیرهای تعریف شده توسط X را تولید می کند. بطوریکه هر ستون از xدر مقابل هر ستون دیگری از x رسم می شود و نتیجه /2n(n − 1)نمودار مرتب شده در یک ماتریس با نمودار مقیاس ثابت در طول سطر و ستون ماتریس می باشد.

  18. Pairs() • مثال: • a <- c(32 ,20,45, 56, 38, 44, 50, 43, 36, 55, 39, 29, 31, 33, 47, 23, 22, 40, 42, 49) • x=c(33.1, 22.7, 44.4, 64.6, 39.9, 49.7, 53.1, 39.2, 29.7, 48.2, 50.7, 29.2, 34.1, 31.2, 42.0, 13.9, 22.7, 43.7, 43.4, 45.0) • Z=c(36, 324, 49, 324 , 0 , 36, 144, 25 , 4, 289, 1, 81 , 49 , 25 ,81 ,225, 256, 4 ,16 ,121) • A <- cbind(a,x,z) • pairs(A,col=’blue’)

  19. Pairs

  20. Coplots • هنگامی که سه یا چهار متغیر داریم دستور( )coplot می تواند بسیار مفید باشد. اگر a و bبردارهای عددی و c یک بردار عددی یا یک بردار عامل باشند. سپس اجرای دستور بصورت زیر خواهد بود: • coplot(a ~ b | c)

  21. Coplots2 • تعدادی نمودار پراکندگی a در مقابل b برای مقادیر داده شده از c را تولید می کند. هنگامی که cبردارعددیباشد , c را به تعدادی فواصل شرطی تقسیم می کند و برای هر فاصله زمانی a در مقابل b برای مقادیر c در فاصله ی داخلی رسم می شود. تعداد و موقعیت فواصل می تواند با عملگر”given.values” در تابع coplot( ) کنترل شود و تابع co.intervals( ) برای انتخاب فواصل مفید می باشد. به عنوان مثال :

  22. coplot • coplot(lat ~ long | depth, data = quakes)

  23. coplot2 • given.depth <- co.intervals(quakes$depth, number = 4, overlap = .1) • coplot(lat ~ long | depth, data = quakes, given.v = given.depth, rows = 1)

  24. (c,d)اگر شرایط جانبی بیش از یکی باشد • همچنین می توانید از دو متغیر داده شده با یک دستور مانند زیر استفاده کنید: • coplot(a ~ b | c + d) • که نمودار پراکندگی از a در مقابل b برای فاصله شرطی مشترک c و d را تولید می کند. هر دو توابع coplot( ) و pairs( ) دارای یک عملگر“panel” می باشند که می تواند به منظور سفارشی کردن نوع نموداری که در هر صفحه مشاهده می شود مورد استفاده قرار بگیرد. مقدار پیش فرض تابع points( ) برای تولید نمودار پراکندگی است اما با ایجاد برخی توابع گرافیکی در سطح ابتدایی دیگر کاربر می تواند از دو بردار x و y بصورت مقادیر “panel” هر نوع نموداری که می خواهید را تولید کند. به عنوان مثال دستور کاربردی “panel” برای coplot ها تابع panel.smooth( ) می باشد.

  25. Example • ll.dm <- lat ~ long | depth * mag • coplot(ll.dm, data = quakes) • coplot(ll.dm, data = quakes, number = c(4, 7), show.given = c(TRUE, FALSE)) • coplot(ll.dm, data = quakes, number = c(3, 4), overlap = c(-.5, .1)) #

  26. Coplot3

  27. Complete Coplot Options • دستور کلی coplot() با گزینه های مختلف به صورت زیر است: • coplot(formula, data, given.values, panel = points, rows, columns, show.given = TRUE, col = par("fg"), pch = par("pch"), bar.bg = c(num = gray(0.8), fac = gray(0.95)), xlab = c(x.name, paste("Given :", a.name)), ylab = c(y.name, paste("Given :", b.name)), subscripts = FALSE, axlabels = function(f) abbreviate(levels(f)), number = 6, overlap = 0.5, xlim, ylim, ...)

  28. نمودارهای سنجش نرمالیتی داده ها • دیگر توابع گرافیکی در سطح پیشرفته انواع مختلفی از نمودارها را تولید می کنند. برخی توابع به فرم زیر می باشند: • qqnorm(x) • qqline(x) • qqplot(x,y)مقایسه توزیعی دو مجموعه از داده ها # • توابع بالا نمودارهای مقایسه ی توزیعی را رسم می کنند. فرم اول، رسم بردار (چندکی) x در برابر مقادیر مرتب نرمال مورد انتظارنرمالرا در بر خواهد داشت و فرم دوم به این نمودار یک خط مستقیم از طریق توزیع و چندکداده ها می افزاید. فرم سوم ,چندکهایی از x در مقابل مقادیر متناظر در y را برای مقایسه ی توزیع های نسبی آنها رسم می کند.

  29. Normality plots for 100 values • مثال: دستورهای زیررابررسی کنید. • x<-rnorm(100,7,3) • qqnorm(x) • qqline(x)

  30. Histogram • به عنوان مثال نمودار هیستوگرام 300 مقدار تصادفی از توزیع هندسی با پارامتر 0.3 و بدون تغییر مقدار پیش فرض عملگر“nclass” با استفاده از دستورهای زیر رسم می شود. • x<-rgeom(300,0.3) • hist(x)#hist(x,nclass=10)# hist(x,breaks=10)

  31. Exponential plot

  32. Dotchart() • ایجاد یک نمودار نقطه ای از داده های x توسط دستور dotchart( ) امکان پذیر است. • dotchart(x, ...) • مثال:در این اینجا نمودار نقطه ای متغیر x شامل 200 مقدار تصادفی توزیع نرمال با میانگین 9 و انحراف معیار 5 بصورت زیر می باشد. • x<-rnorm(200,9,5) • dotchart(x)

  33. Dotchart plot

  34. 3Dimention Plots • در نرم افزار R رسم نموداری شامل سه متغیر توسط توابع زیر امکان پذیر است. تابع image( ) یک شبکه مستطیلی با استفاده از رنگ های مختلف برای نمایش مقادیر z رسم می کند. تابع contour( ) خطوطی برجسته برای نمایش مقادیر z و تابع persp( ) یک رویه ی سه بعدی را رسم می کند. • image(x, y, z, ...) • contour(x, y, z, ...) • persp(x, y, z, ...)

  35. Example3DP • برای متغیرهای x و y و z دستورهای رسم مذکور به شکل زیر هستند. • x<-seq(10,50,0.9) • y<-seq(30,60,0.9) • c<-sqrt(outer(x*2,y*3,"+")) • z<-sin(c/2)*cos(c/2) • image(x,y,z, col = heat.colors(12))#num of col • title(main="image plot of z",font.main=3)

  36. Example

  37. Contour • contour(x,y,z) • title(main="contour plot of z",font.main=4)

  38. Persp() • persp(x,y,z)#presp(x,y,z,theta = 35)title(main="persp plot of z",font.main=4)

  39. آرگومان ها در رسم توابع در سطح پیشرفته • تعدادی عملگر وجود دارند که می توانند به توابع گرافیک در سطح پیشرفته منتقل شوند. این عملگرها تابع را ملزم می کنند به عنوان یک تابع گرافیک در سطح ابتدایی عمل کند و نموداری را در نمودار فعلی ) فقط بعضی از توابع ) قرار دهد. عملگر“axes=FALSE” از تولید محورها جلوگیری می کند و به طور پیش فرض این عملگر“axes=TRUE” شامل محورها می باشد. برای اضافه کردن محورهای سفارشی کاربر با تابع axis( ) نیز روشی کاربردی است. • log=”x” • log=”y” • log=”xy” • این عمل باعث می شود که محورهای x وy یا هر دو محور لگاریتمی در نظر گرفته شوند. اگرچه این عمل برای بیشتر انواع نمودارها قابل اجرا است، اما ممکن است برای همه ی نمودارها قابل اجرا نباشد. عملگر“type” نوع نمودار تولید شده را کنترل می کند و انواع آن در جدول زیر قابل مشاهده است :

  40. پارامترهای رسم نمودار

  41. دستورهای رسم نمودار در سطح ابتدایی • بعضی اوقات توابع رسم در سطح پیشرفته دقیقا نوع نمودار مورد نظر کاربر را تولید نمی کنند. در این مورد دستورهای رسم در سطح ابتدایی می توانند به منظور افزودن اطلاعات اضافی مانند نقاط , خطوط یا متن به نمودار فعلی استفاده شوند. برخی توابع رسم در سطح ابتدایی بسیار کاربردی و بصورتزیر می باشند: • points(x, y) • lines(x, y)روی نمودار قبلی رسم می کند #

  42. Points() • دستور(lines) بالا نقاط یا خطوط متصل به هم را به نمودار فعلی می افزایند. عملگرtype= در plot( ) می تواند در این توابع نیز استفاده شود (مقادیر پیش فرض "p" برای points( ) و "l" برای lines( ) می باشند). به دو مثال در این زمینه توجه کنید : • x<-rgamma(21,15,10) • y<-seq(20,30,0.5) • plot(x,y,type="l",col="red") • points(x,y,col="black",lwd=3)

  43. plots

  44. Example • a<-seq(15,20,0.5) • b<-c(2,34,5,1,2,34,56,3,5,2,7) • plot(a,b,type="p",col="red",lwd=3) • lines(a,b,col="black")

  45. plot

  46. text(x, y, labels…) • دستور text(x, y, labels, ...) برای افزودن متن به یک نمودار در نقاط xو y بکار می رود. معمولا برچسب ها یک بردار صحیح یا کاراکتری می باشند که در این صورت labels[i] در نقطه ی (x[i], y[i]) رسم می شود. • همچنین ترکیبی کاربردی از تابع plot( ) با عملگرtype=”n” و تابع text( )بصورت زیر می باشد: • plot(x, y, type="n"); text(x, y, names)

  47. Example Text • x<-c(4,6,4,6,5,4.5,5.5,5,5) • y<-c(4,4,2,2,3,3,3,2.5,3.5) • plot(x,y,type="n") • text(x,y,labels=c("1","2","3","4","A","B","C","E","D"),col="red",lwd=2)

  48. Example

  49. abline( ) • افزودن یک خط با شیب b و عرض از مبدا a به نمودار فعلی توسط تابع abline( ) امکان پذیر است. در این دستور عملگر“h=y” می تواند به منظور مشخص کردن مختصات y برای ارتفاع خطوط افقی در سراسر نمودار مورد استفاده قرار گیرد و بطور مشابه عملگر“v=x” برای مشخص کردن مختصات x برای خطوط عمودی. • abline(a, b)# a is intersept and b is shape

  50. Example • به عنوان مثال نمودار متغیرهای x و y را به همراه یک خط با عرض از مبدا x و شیب y را رسم می شود: • x<-rexp(20,5) • y<-rexp(20,8) • plot(x,y,lwd="2") • abline(0.15,.6,.5,.3,col='blue',lwd=8)#a0=0.15,b=0.6 then a1=0.5 and b1=0.3

More Related