R基本作图《一》

来源:互联网 发布:网游等级算法 编辑:程序博客网 时间:2024/05/15 12:27

首先生成实验数据

>num=seq(10378001,10378100)

> num
 [1] 10378001 10378002 10378003 10378004 10378005 10378006 10378007 10378008
  [9] 10378009 10378010 10378011 10378012 10378013 10378014 10378015 10378016
 [17] 10378017 10378018 10378019 10378020 10378021 10378022 10378023 10378024
 [25] 10378025 10378026 10378027 10378028 10378029 10378030 10378031 10378032
 [33] 10378033 10378034 10378035 10378036 10378037 10378038 10378039 10378040
 [41] 10378041 10378042 10378043 10378044 10378045 10378046 10378047 10378048
 [49] 10378049 10378050 10378051 10378052 10378053 10378054 10378055 10378056
 [57] 10378057 10378058 10378059 10378060 10378061 10378062 10378063 10378064
 [65] 10378065 10378066 10378067 10378068 10378069 10378070 10378071 10378072
 [73] 10378073 10378074 10378075 10378076 10378077 10378078 10378079 10378080
 [81] 10378081 10378082 10378083 10378084 10378085 10378086 10378087 10378088
 [89] 10378089 10378090 10378091 10378092 10378093 10378094 10378095 10378096
 [97] 10378097 10378098 10378099 10378100

> x1=round(runif(100,min=80,max=100))      
> x1
  [1] 90 98 82 91 82 95 87 82 97 83 82 88 85 87 95 99 84 92
 [19] 92 93 88 87 99 100 96 91 88 89 94 99 84 95 82 92 85 99
 [37] 92 98 96 94 92 87 99 88 90 95 96 82 97 82 90 82 97 83
 [55] 83 86 88 91 98 83 90 99 93 95 94 83 94 94 96 100 93 92
 [73] 83 95 88 91 80 98 87 99 82 95 88 97 91 99 85 100 81 81
 [91] 83 87 90 85 91 82 82 90 97 95

> x2=round(rnorm(100,mean=80,sd=7))
> x2
  [1] 78 90 72 78 78 74 72 81 76 80 75 72 90 65 74 84 84 91
 [19] 78 82 78 83 92 77 79 79 75 73 86 74 79 86 82 75 101 78
 [37] 74 81 73 80 81 78 84 88 92 75 73 79 82 81 76 79 82 75
 [55] 87 78 90 90 81 75 74 75 75 89 79 79 80 80 77 70 77 67
 [73] 76 74 80 87 91 92 90 75 92 71 88 89 74 83 81 85 72 88
 [91] 88 91 93 78 86 95 80 78 91 84

> x3=round(rnorm(100,mean=83,sd=18))
> x3
  [1] 87 86 75 97 77 76 110 96 53 141 74 99 97 92 79 91 85 82
 [19] 74 82 90 66 67 40 109 58 56 52 56 90 82 120 95 68 98 72
 [37] 85 44 94 47 103 96 93 95 66 116 85 85 100 94 47 68 71 66
 [55] 57 91 101 75 74 54 64 110 95 103 59 73 70 63 100 123 69 76
 [73] 83 40 86 89 80 43 126 108 80 76 81 101 72 77 47 93 91 72
 [91] 98 68 71 83 71 114 78 69 130 85

> x3[which(x3>100)]=100  #将大于100的数据直接赋值为100
> x3
  [1] 87 86 75 97 77 76 100 96 53 100 74 99 97 92 79 91 85 82
 [19] 74 82 90 66 67 40 100 58 56 52 56 90 82 100 95 68 98 72
 [37] 85 44 94 47 100 96 93 95 66 100 85 85 100 94 47 68 71 66
 [55] 57 91 100 75 74 54 64 100 95 100 59 73 70 63 100 100 69 76
 [73] 83 40 86 89 80 43 100 100 80 76 81 100 72 77 47 93 91 72
 [91] 98 68 71 83 71 100 78 69 100 85
> x=data.frame(num,x1,x2,x3)
> x
       num x1 x2 x3
1 10378001 90 78 87
2 10378002 98 90 86
3 10378003 82 72 75
....
99 10378099 97 91 100
100 10378100 95 84 85

1.直方图

> hist(x$x1)

2.散点图
> plot(x1,x2) 

3.柱状图
> table(x$x1)  #列联函数
 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
  1 2 11 7 2 4 1 6 7 1 6 6 6 3 5 8 4 5 4
 99 100
  8 3
> barplot(table(x$x1))  #柱状图绘制函数

4.饼图
> pie(table(x$x1))

5.箱线图
箱子的上下横线为样本的25%和75%分位数
箱子中间横线为样本的中位数
上下延伸的直线为尾线,尾线的尽头为最高值和最低值

> boxplot(x$x1,x$x2,x$x3)

> boxplot(x[2:4],col=c("green","blue","red"),notch=T)          #可以指定颜色,notch=T是指定中位线缺口

> boxplot(x[2:4],horizontal=T)        #绘制横向的箱线图

6.茎叶图

> stem(x$x1)

  The decimal point is at the |

   80 | 000
   82 | 000000000000000000
   84 | 000000
   86 | 0000000
   88 | 00000000
   90 | 000000000000
   92 | 000000000
   94 | 0000000000000
   96 | 000000000
   98 | 000000000000
  100 | 000

由上面的茎叶图可以得出80分的有3个,82分的有18...

7.QQ图
可以用于判断是否样本符合正态分布
直线的斜率就是标准差,截距就是均值
点的散布越接近直线,则越接近正态分布

> qqnorm(x1)

> qqline(x1)   #增加辅助直线

8.星象图
每个观测的单位的数据表示一个图形
每个图的每个角表示一个变量,字符串会标注在图的下方
角的长度表达值的大小

stars (x[c("x1","x2","x3")])     

有上面的星象图可以清楚看到学生成绩的好坏和偏科的状况。

> stars (x[c("x1","x2","x3")],full=T,draw.segment=T)  #更换图形,可以使用扇形,值越大扇形的半径越长

> stars (x[c("x1","x2","x3")],full=F,draw.segment=T)   #只绘半个扇形


9.脸谱图
需要安装aplpack的包,用五官的宽度和高度来描绘数值
人对脸谱有高度敏感和强烈记忆
适合较少样本的情况
faces (x[c("x1","x2","x3")])     


还有另一种脸谱,需要安装TeachingDemos
> library(TeachingDemos)  
>face2(x)

0 0