happy valentine

今天看到统计之都上的情人节心形图。 这次画的心形函数是: $ x = 16 (sin t)^3$ $ y = 13 cos t - 5 cos 2t - 2 cos 3t - cos 4t$ 尝试用ggplot2来画,结果如下: 代码见Github. 类似的心形图以前也是画过的,当然这样的函数图有很多,详见http://www.mathematische-basteleien.de/heart.htm,画起来也很容易。 倒是以前画过的蝙蝠侠logo,更有成就感些。

Continue reading

violin plot

ggplot2 0.9.0版本将在3月1号发布,改动较大,最近bioc mailing list也有诸多讨论,因为它导致了某些包编译出错(估计是NAMESPACE引起的)。

按照hadley的说法是这是为了把他个人的项目变成一个社区项目。

大多数的改动对用户来说是invisible的,用roxygen2去注释函数,核心代码使用S3重写,分离出一些特性(scales包)等。

最明显的是现在画图速度变快了,不过我觉得最让人兴奋的是guide_legend()guide_colorbar()两个函数,可以修改legend.

画图的话,加了四个函数geom_map(), geom_raster(),geom_dotplot()geom_violin().

Continue reading

今天在微博上看到这坑爹的方程: $ (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

Author's picture

Guangchuang Yu

Bioinformatics Professor @ SMU

Bioinformatics Professor

Guangzhou