Guangchuang Yu

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

公号狗的福音

Apr 23, 2017 - 1 minute read - Comments Publish

苹果和企鹅分赃没谈好,反正林子大了,就不顾小鸟的死活!取消了iOS的赞赏功能,一个个觉得错过了一个亿,我真不知道原来你的赞赏有这么多!我半年来得到的还不够我的日薪多。虽然少得可怜,但我还是及时地在当天给出方案来吸引眼球,创作了一个绿色的赞赏按纽。

我的文章排版都是markdown,markdown是外部驱动的,要什么效果,CSS话事。这个赞赏按纽无非是个链接,赞赏二字链接到转帐二维码,而要实现按纽的效果,可以专门定义一个style来实现。

来自R的桌面提醒

Apr 11, 2017 - 1 minute read - Comments R

notifier包实现了跨平台的桌面提醒功能,当然它是调用了外部的命令,比如windows使用了toaster,老版本windows使用的是notifu,在linux下使用notify-send,而在OSX下,则调用了terminal-notifier,通过了简单的封装之后,就可以给桌面发布消息提醒了。

比如:

library(notifier)
notify(
  title = "15 Packages out of date",
  msg = c("You can run update.packages() to update them.",
  "Outdated packages: Boom colorspace desc memuse networkD3",
  "pbapply revealjs rgl rmdformats timevis and 5 more")
)

​ 效果如下:

ggimage:ggplot2中愉快地使用图片

Apr 11, 2017 - 4 minute read - Comments RVisualization

导言

本文介绍了ggimage包,允许在ggplot2作图时嵌入图片,并支持aes映射,可以把离散型变量映射到不同图片。目前有几个包可以使用图片嵌入做图,但都是针对特定的场景,这里使用ggimage来展示在这些特定领域里的应用,ggimage的设计是通用的,并不被特定场景所限定,文末又介绍了用R图标来画出R、用饼图来画气泡图等实例。

图上嵌图片

R 基础图形库(base graphics)可以在做图的时候嵌入图片,使用的是graphics::rasterImage

imgurl <- "http://phylopic.org/assets/images/submissions/295cd9f7-eef2-441e-ba7e-40c772ca7611.256.png"
library(EBImage)
x <- readImage(imgurl)
plot(1, type = "n", xlab = "", ylab = "", xlim = c(0, 8), ylim = c(0, 8))
rasterImage(x, 2, 2, 6, 4)

R绘图嵌入图片演示

generate biobabble banner using ggimage

Apr 5, 2017 - 1 minute read - Comments RVisualization

制作了一个banner,用来插入到文后,方便阅读到最后的时候,直接扫描关注。

这图当然用PS一下就可以得到,无非是拼图和加点文字。但做为天天写代码画图的人来说,必然是要纯代码来产生的,而且做科学的人,讲究自动化、可重复性。

就像有些人不理解data scentist为什么讨厌excel一样,觉得无非是工具,没什么好搞阵营的。试想一下,一个分析流程中间有一步要用到excel,需要人工去点点鼠标,这对于讲究自动化、可重复性的data scientist来说是不可接受的。

加载中文字体

为了打几个中文字,需要先加载字体,这里我用showtext。

require(showtext)
font.add("heiti", "/Library/Fonts/华文黑体.ttf")
showtext.auto()

ggplot2字体溢出的那点破事

Apr 3, 2017 - 1 minute read - Comments R

比如下面的代码:

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几乎看不到,因为一半过界了。