比如下面的代码:

require(ggplot2)
d <- data.frame(x=c(0, 0.002, 0.00575), y = 1:3)
p <- ggplot(d, aes(x, y)) + geom_point() + xlab(NULL) + ylab(NULL)
print(p)

上面图中x轴的文本0.006,这个数字中的6几乎看不到,因为一半过界了。

Continue reading

News in emojifont

面向对象有多种实现方式,R里面就有3种,class-based, method-based, object-based,R6与C++/JAVA一样是class-based的,S3/S4是method-based的,还有一种是object-based的,这在proto包中实现,很多人可能没听说过,但是ggplot2你们一定听过,ggplot2就是object-based的实现,它现在是自己的定制实现,称之为ggproto。

emojifont就是用proto实现的,属于我的练手之作,很高兴深受大家的喜欢。

Continue reading

wrapping labels in ggplot2

在公众号biobabble后台有多人同时在问这个问题:

晒这个截屏主要想说一点,如果是一两句话就能说清楚的问题,可以提问,如果不是,则不要在后台提问,写邮件或者到论坛提问,是更好的方式,像截屏中显示的,图片显示过期,我根本就没看到过图片。在手机上是无法看的,而我正好几天没在电脑前,于是你们发的图片我看不了,而且我如果没有在24小时之内回复,公众平台就不允许我回复了,因为问题已经过期。所以在此强调,不要在后台发图片提问,不要在后台问稍复杂的问题。

这个问题其实很简单,用stringr包的str_wrap来完成文本自动换行就行了。

Continue reading

Why use ggplot2

ggplot2是我见过最human friendly的画图软件,这得益于Leland Wilkinson在他的著作《The Grammar of Graphics》中提出了一套图形语法,把图形元素抽象成可以自由组合的成分,Hadley Wickham把这套想法在R中实现。

为什么要学习ggplot2,可以参考ggplot2: 数据分析与图形艺术序言(btw: 在序言的最后,我被致谢了)。

Hadley Wickham也给出一堆理由让我们说服自己,我想再补充一点,Hadley Wickham是学医出身的,做为学生物出身的人有什么理由不支持呢:)

Continue reading

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

根号2的几何作图

读研时买了很多书,大部分都没时间看,《什么是数学》就是其中的一本。 这两天翻看了一点。

《第二章:数学中的数系》讲到了当年的伟大发现,一个正方形的对角线与它的边是不可公度的。而由不可公度线段,引入的无理数概念,引入负数,在17世纪都是个另人不安的事情,无理数是个巨大的飞跃,

73页中的图10,给出了 $\sqrt{2}$的几何作图。

我用R尝试把它画出来:

Continue reading

Author's picture

Guangchuang Yu

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

Postdoc researcher

Hong Kong