比如下面的代码:
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几乎看不到,因为一半过界了。
比如下面的代码:
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几乎看不到,因为一半过界了。
面向对象有多种实现方式,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实现的,属于我的练手之作,很高兴深受大家的喜欢。
在公众号biobabble后台有多人同时在问这个问题:
晒这个截屏主要想说一点,如果是一两句话就能说清楚的问题,可以提问,如果不是,则不要在后台提问,写邮件或者到论坛提问,是更好的方式,像截屏中显示的,图片显示过期,我根本就没看到过图片。在手机上是无法看的,而我正好几天没在电脑前,于是你们发的图片我看不了,而且我如果没有在24小时之内回复,公众平台就不允许我回复了,因为问题已经过期。所以在此强调,不要在后台发图片提问,不要在后台问稍复杂的问题。
这个问题其实很简单,用stringr
包的str_wrap
来完成文本自动换行就行了。
ggplot2是我见过最human friendly的画图软件,这得益于Leland Wilkinson在他的著作《The Grammar of Graphics》中提出了一套图形语法,把图形元素抽象成可以自由组合的成分,Hadley Wickham把这套想法在R中实现。
为什么要学习ggplot2,可以参考ggplot2: 数据分析与图形艺术的序言(btw: 在序言的最后,我被致谢了)。
Hadley Wickham也给出一堆理由让我们说服自己,我想再补充一点,Hadley Wickham是学医出身的,做为学生物出身的人有什么理由不支持呢:)
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()
.
读研时买了很多书,大部分都没时间看,《什么是数学》就是其中的一本。 这两天翻看了一点。
《第二章:数学中的数系》讲到了当年的伟大发现,一个正方形的对角线与它的边是不可公度的。而由不可公度线段,引入的无理数概念,引入负数,在17世纪都是个另人不安的事情,无理数是个巨大的飞跃,
73页中的图10,给出了 $\sqrt{2}$的几何作图。
我用R尝试把它画出来: