前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言实现SCI级别颜色搭配

R语言实现SCI级别颜色搭配

作者头像
一粒沙
发布2020-03-19 15:34:59
2.6K0
发布2020-03-19 15:34:59
举报
文章被收录于专栏:R语言交流中心R语言交流中心

大家投过文章的想必都有为绘图的色彩纠结的不得了的时候,今天就给大家介绍一个别人基于一些科研杂志,可视化库甚至科幻电影进行了一些颜色模板的设计的R包ggsci。安装我们就不多说了:

代码语言:javascript
复制
install.packages("ggsci")
install.packages("ggplot2")
install.packages("gridExtra")
install.packages("gridExtra")

我们首先看下此包都预设了哪些相关的模板,具体内容如下表:

接下来我们就直接利用包自带的实例给大家演示下。首先,我们看下在不做处理的情况下:

代码语言:javascript
复制
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()
 
p2 = ggplot(subset(diamonds, carat > 2.2& depth > 55 & depth < 70), aes(x = depth, fill = cut)) +geom_histogram(colour= "black", binwidth = 1, position = "dodge") +theme_bw()
grid.arrange(p1, p2, ncol = 2)

接下来我们看下包中的模板怎么加进去。以NPG为例,我们直接看实例:

代码语言:javascript
复制
p1_npg = p1 + scale_color_npg()
p2_npg = p2 + scale_fill_npg()
grid.arrange(p1_npg, p2_npg, ncol = 2)

我们再看一个在科幻电影《Tron Legacy》中的风格:

代码语言:javascript
复制
p1_tron = p1 + theme_dark() + theme(panel.background= element_rect(fill = "#2D2D2D"),
   legend.key = element_rect(fill = "#2D2D2D")) +scale_color_tron()
p2_tron = p2 + theme_dark() + theme(panel.background= element_rect(fill = "#2D2D2D")) +scale_fill_tron()
grid.arrange(p1_tron, p2_tron, ncol = 2)

最后我们看下此包对于连续性的颜色变化的设置,其实所谓连续性的颜色变化主要应用于热图中可以实现颜色的过度。那么,我们直接看下实例,首先是一个原始的数据设置:

代码语言:javascript
复制
library("reshape2")
 
data("mtcars")
cor = cor(unname(cbind(mtcars, mtcars,mtcars, mtcars)))
cor_melt = melt(cor)
 
p3 = ggplot(cor_melt, aes(x = Var1, y =Var2, fill = value)) +geom_tile(colour = "black", size = 0.3) +theme_bw()+theme(axis.title.x = element_blank(),axis.title.y = element_blank())

然后,我们看下GSEA GenePattern的样式情况:

代码语言:javascript
复制
p3_gsea    = p3 + scale_fill_gsea()
p3_gsea_inv = p3 + scale_fill_gsea(reverse= TRUE)#可以实现颜色的颠倒
grid.arrange(p3_gsea, p3_gsea_inv, ncol =2)

当然我们也可以使用Material Design模板中19种颜色的过度,我们随便取其一种看下实例:

代码语言:javascript
复制
p3+ scale_fill_material("blue")

或许我们看中了他其中的某一个或者几个颜色,那么我们也可以把这个颜色提取出来应用于其它的绘图系统,具体提取过程如下:

代码语言:javascript
复制
mypal = pal_npg("nrc", alpha =0.7)(9)##提取颜色
library("scales")
show_col(mypal)##对应颜色代码

欢迎大家互相学习交流!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言交流中心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档