搜索
查看: 4705|回复: 0

如何使用ggsci获取顶级期刊专属配色

[复制链接]

13

主题

30

帖子

263

积分

中级会员

Rank: 3Rank: 3

积分
263
发表于 2017-5-10 22:03:31 | 显示全部楼层 |阅读模式

      @大家好,我是阿尔的太阳
      这是公众号生信之光的第一篇推送
      不足之处请大家多多批评指正。

      今天的主题是一个不错的R包
      叫做ggsci

      很多时候你需要把数据通过绘图来做直观形象的展示,R是一个很好的选择,在R的使用中,现在越来越多的人已经选择不使用base graphics而是直接转到了ggplot2绘图。

      但是有的时候,ggplot的默认配色并不能令我们满意,这时候就需要去自定义配置。

    ggplot2本身已经提供了解决方案:

1.   对于连续性变量我们可以使用scale_colour_gradientn()和scale_fill_gradientn()来自定义颜色梯度;

2.   对于离散型变量,可以使用ColorBrewer的 scale_colour_ brewer ()、scale_fill_ brewer ()函数在调色板中选择颜色进行绘制,  但是都比较浪费时间。

    当然也见过可视化大牛Y叔介绍过的“食色性也”—如何使用rPlotter直接从一图片中extract colours。

    接下来我们就介绍一下ggsci
    这个包的两位作者都是中国人,
    目前所在单位是Seven Bridges和Duke


      这个包非常容易使用,是对ggplot2科研绘图的一个非常好的辅助,文档也很详细。因为不是bioconductor的包所以安装方式和普通的包相同。在预先安装好ggplot2的基础上,运行
install.packages("gridExtra") install.packages("ggsci")
[size=0.85em]library[size=0.85em]([size=0.85em]"ggsci"[size=0.85em])
[size=0.85em]library[size=0.85em]([size=0.85em]"gridExtra"[size=0.85em])
      学习了文档我发现这个包提供了Nature PublishingGroup,American Association for the Advancement of Science,Lancet journals等著名期刊的图片配色方案。


       配色的选择,主要通过两个函数scale_color_palname()和
scale_fill_palname(),其中palname字段来指定不同的配色方案;fill 和 color则分别适用于不同类型的图。

      接下来作者分别介绍了Discrete 和 Continuous
      配色的使用:

  • 对于Discrete 的支持还是最多的


    一个简单的demo:
    我们给换一个NEJM 配色
library(“ggsci”)
library(“ggplot2”)
library(“gridExtra”)

data(“diamonds”)

p1 = ggplot(subset(diamonds, carat >= 2.2),
aes(x = table, y = price, colour = cut)) +
geom_point(alpha = 0.7) +
geom_smooth(method = “loess”, alpha = 0.05, size = 1, span = 1) +
theme_bw()

p_nejm = p + scale_color_nejm()p_nejm
      效果是这样


      确实好看不少~  大家可以自己尝试其他的配色和图形 比如bar图等等 Discrete的配色还是挺多的 但是对于Continuous 值配色支持比较少

2. 下面是 Continuous 的demo
library(“reshape2”)
data(“mtcars”)
cor = cor(unname(cbind(mtcars, mtcars, mtcars, mtcars)))
cor_melt = melt(cor)
p2 = ggplot(cor_melt,
    aes(x = Var1, y = Var2, fill = value)) +
    geom_tile(colour = “black”, size = 0.3) + theme_bw()

      ggplot2 默认的一般是蓝黑的渐变色,使用了以后就会变成蓝红的渐变色。
p2_gsea = p2 + scale_fill_gsea() p2_gsea
      以下是条形图的效果      

      目前也支持其他绘图系统的配色可以通过相应函数生成调色板,不过应用应该不多,主要还是对于Discrete的配色使用,希望后期能继续更新配色。
mypal = pal_npg(“nrc”, alpha = 0.7)(9)mypal library(“scales”)show_col(mypal)
生物信息前沿资讯
原创干货分享
尽在生信之光



上一篇:肿瘤突变位点临床解读:Clvic 数据库简单探究
下一篇:R语言绘图更改字体
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2020-3-31 10:33 , Processed in 0.021693 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.