今天在微博上看到这坑爹的方程: $ (x^2+y^2-1)^3 = {x^2} {y^3}$ 画出来如下: 跟个屁股似的,sigh… 翻出azalea的老文:http://azaleasays.com/2008/06/18/fomula-of-love/ 用ggplot2画一下这个爱的方程:$17x^2-16|x|y+17y^2 = 225 $ x <- seq(-sqrt(17), sqrt(17), 0.001) y1 <- 8*abs(x)/17 + 15* sqrt(17 - x^2)/17 y2 <- 8*abs(x)/17 - 15* sqrt(17 - x^2)/17 d <- data.frame(x=c(x,x),y=c(y1,y2)) require(ggplot2) p <- ggplot(d, aes(x,y)) p + geom_point(color="red") 还可以画出红心,适合今天七夕的日子。 p + geom_line(color="red") 画函数图,这种事情,还是用CAS方便点。 通过maxima来画,一条指令就行,还不用解方程: contour_plot(17*x^2-16*abs(x)*y+17*y^2-225, [x,-sqrt(17),sqrt(17)],[y,-15*sqrt(17)/17, sqrt(17)])

Continue reading

QQ plot

虽然R提供了很多作图函数,但自己实现一下,是非常好的体验,而且能够让我们了解其中的细节。

最近在读<Modern Applied Statistics With S-PLUS>,115页讲到Q-Q图时,书中给出了一个Trellis的实现。(Trellis是S/S-PLUS的可视化系统,在R里的对等实现是lattice包)。

我们知道一组数字,可以算4分位数,分别是25%, 50%(中位数), 75%,它等于该组数字中所有数值由小到大排列后第X%的数字,事实上每个数字都可以对应一个X%,Q-Q图很简单,把样本数据和理论分布算出来的quantiles,画个散点图而已。分别用base graph和ggplot2实现,图中三个图分别由系统函数qqnorm,和这里定义的qqplot, qqplot2画出来。

Continue reading

三维绘图可以分为两大类型:矩阵型和曲面型。

矩阵型

通常是声明一个矩阵,以矩阵的长宽为x,y范围,以矩阵里面的数值为高z, 使用plot3d(t1,t2,Z,alpha=a,theta=b)

  • t1:y轴方向的范围
  • t2:x轴方向的范围
  • Z:矩阵
  • alpha
  • theta参数用于指定角度,让图绘出来以某个特定的角度呈现出来。(optional)

    ->clear ->A=[1 2 5 4 3;0 3 2 8 6;2 4 6 7 5;2 3 4 3 1];
    ->t1=1:4; ->t2=1:5;
    //plot3d1与plot3d语法类似,能够嵌入多种颜色
    ->plot3d(t1,t2,A,alpha=45,theta=45);
    

mesh不需要边界声明, ->mesh(A);

Continue reading

Author's picture

Guangchuang Yu

a senior-in-age-but-not-senior-in-knowledge bioinformatician

Postdoc researcher

Hong Kong