加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

在R中绘制平滑的曲线

(2013-05-03 21:30:20)
标签:

r语言

生物信息学

不够

部分

对数

分类: R语言
excel画折线图的时候有一个好用的功能,“平滑线”可以帮助我们把折现图变得更加好看。今天在用R画折线图的时候碰到问题,如何用R来画平滑化的折线图?
用一组数据来看一下:计算3万多行的矩阵x的行1-539,540-11736,11737 之后的列均值并画出来其中11列的分布。
三部分的均值用R很容易计算
>dim(x)
[1] 37996   211
>cdt1<-apply(x[1:539,],2,mean)
>cdt2<-apply(x[540:11736,],2,mean)
>cdt3<-apply(x[11736:dim(x)[1],],2,mean)
#作图,画出其中均值的101到111分布
> plot(cdt1[101:111],type='l',xlab='1~11',ylab='Means',col='red')
> lines(cdt2[101:111],col='green')
> lines(cdt3[101:111],col='blue')
图很丑吧~~?http://www/uc/myshow/blog/misc/gif/E___6706EN00SIGG.gif简直无法忍受,需要一些辅助手段帮助我们来进行一些变化。
> m<-1:11
> plot(spline(m,cdt1[101:111],n=100),type='l',xlab='1~11',ylab='Means',col='red')
> lines(spline(m,cdt2[101:111],n=100),col='green')
> lines(spline(m,cdt3[101:111],n=100),col='blue')
spline函数中的参数n是可调整的,设置的太大会导致曲线过度,设置的不够会导致曲线不够漂亮。比如下面这样http://www/uc/myshow/blog/misc/gif/E___6693EN00SIGG.gif
http://s3/mw690/572d4a6cgdbd0f3b88d12&690spline函数到底做了对数据做了什么?
>result<-spline(m,cdt1[101:111],n=100)
#函数生成了一个list,list里面两列数据
> attributes(result)
$names
[1] "x" "y"
> typeof(result)
[1] "list"
>result$x
  [1]  1.000000  1.101010  1.202020  1.303030  1.404040  1.505051  1.606061
  [8]  1.707071  1.808081  1.909091  2.010101  2.111111  2.212121  2.313131
 [15]  2.414141  2.515152  2.616162  2.717172  2.818182  2.919192  3.020202
 [22]  3.121212  3.222222  3.323232  3.424242  3.525253  3.626263  3.727273
 [29]  3.828283  3.929293  4.030303  4.131313  4.232323  4.333333  4.434343
 [36]  4.535354  4.636364  4.737374  4.838384  4.939394  5.040404  5.141414
 [43]  5.242424  5.343434  5.444444  5.545455  5.646465  5.747475  5.848485
 [50]  5.949495  6.050505  6.151515  6.252525  6.353535  6.454545  6.555556
 [57]  6.656566  6.757576  6.858586  6.959596  7.060606  7.161616  7.262626
 [64]  7.363636  7.464646  7.565657  7.666667  7.767677  7.868687  7.969697
 [71]  8.070707  8.171717  8.272727  8.373737  8.474747  8.575758  8.676768
 [78]  8.777778  8.878788  8.979798  9.080808  9.181818  9.282828  9.383838
 [85]  9.484848  9.585859  9.686869  9.787879  9.888889  9.989899 10.090909
 [92] 10.191919 10.292929 10.393939 10.494949 10.595960 10.696970 10.797980
 [99] 10.898990 11.000000
> result$y
  [1] 1.9795918 2.2352883 2.4662114 2.6730783 2.8566059 3.0175114 3.1565117
  [8] 3.2743238 3.3716648 3.4492518 3.5078013 3.5474655 3.5667200 3.5637301
 [15] 3.5366612 3.4836787 3.4029481 3.2926347 3.1509039 2.9759211 2.7658688
 [22] 2.5225357 2.2557565 1.9764549 1.6955543 1.4239784 1.1726506 0.9524945
 [29] 0.7744337 0.6493916 0.5881972 0.5943542 0.6589503 0.7718700 0.9229983
 [36] 1.1022199 1.2994195 1.5044820 1.7072920 1.8977343 2.0658202 2.2064767
 [43] 2.3210166 2.4111795 2.4787050 2.5253328 2.5528024 2.5628534 2.5572256
 [50] 2.5376583 2.5059438 2.4650810 2.4192754 2.3727854 2.3298690 2.2947844
 [57] 2.2717897 2.2651432 2.2791031 2.3179273 2.3854726 2.4795858 2.5934877
 [64] 2.7202800 2.8530645 2.9849429 3.1090170 3.2183884 3.3061591 3.3654305
 [71] 3.3899410 3.3799980 3.3397845 3.2735339 3.1854792 3.0798538 2.9608907
 [78] 2.8328233 2.6998847 2.5663080 2.4361292 2.3119250 2.1956182 2.0891285
 [85] 1.9943758 1.9132799 1.8477604 1.7997371 1.7711298 1.7638583 1.7798984
 [92] 1.8215304 1.8911365 1.9910992 2.1238010 2.2916242 2.4969514 2.7421650
 [99] 3.0296474 3.3617811

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有