天天看点

R语言ggplot2科研数据作图配色的一些小技巧本篇推文来自于公众号读者的投稿

本篇推文来自于公众号读者的投稿

如果你在读研读博的过程中积累了一些经验,不管内容是关于数据处理、论文写作,还是实验室的家常里短,师兄师姐的爱恨情仇,都欢迎你来公众号投稿。

以下是正文内容

大家好,在这里给大家介绍一下使用ggplot2绘图调色的几种小方法。正所谓绘图十分钟,调色一小时。图片的配色直接决定了图片质量的好坏。下面讲一下我平时绘图用到的调色工具。

首先是创建一份数据集

data <- data.frame(
  name=letters[1:9],
  value=sample(seq(10,20),9))
data
           

复制

使用ggplot2默认的配色做一个简单的柱形图

library(ggplot2)
ggplot(data=data,aes(name,value,fill=name))+
  geom_bar(stat = "identity")
           

复制

R语言ggplot2科研数据作图配色的一些小技巧本篇推文来自于公众号读者的投稿

image.png

配色小技巧之一:RColorBrewer 包

RColorBrewer 包是一个专门调色的包,包含三种类型的配色:

  • 1、sequential
  • 2、qualitative
  • 3、diverging

(小明评论:这三个类型的配色我的理解是 1 sequential 如果你的数据是1,2,3,4,这种有大小,配色可以选择这种类型,数值比较小,颜色会比较浅,数值比较大,颜色会比较深;2 qualitative 定性的 适用于分类变量,就是数据是 A B C D这种,没有大小,只是类别不一样;3 diverging 这个暂时不理解是什么意思)

先把调色板调出来看一下

library(RColorBrewer)
help(package="RColorBrewer")
display.brewer.all()
           

复制

R语言ggplot2科研数据作图配色的一些小技巧本篇推文来自于公众号读者的投稿

image.png

1 对应的应该是sequential 2 对应的是 qualitative 3 对应的是diverging

生成颜色值我们需要使用

brewer.pal()

函数,这个函数又两个参数,第一个参数是调色板左侧的名字,第二个位置是生成几个颜色

比如做柱形图,我们选择分类的颜色

colors<-brewer.pal(name="Set3",9)
colors
           

复制

这样就生成了9个颜色,接下来用这个颜色填充柱形图

ggplot(data=data,aes(name,value,fill=name))+
  geom_bar(stat = "identity")+
  scale_fill_manual(values = colors)+
  theme_bw()
           

复制

R语言ggplot2科研数据作图配色的一些小技巧本篇推文来自于公众号读者的投稿

image.png

配色小技巧之二:colorbrewer2

这是一个在线配色网站 https://colorbrewer2.org/ 超赞!网站的画风是这样的。

R语言ggplot2科研数据作图配色的一些小技巧本篇推文来自于公众号读者的投稿

image.png

与RColorBrewer 包一样也是分为sequential,qualitative,diverging三个部分。点击它们会出现不同的颜色分类。这次咱们试一试渐变色。

ggplot(data=data,aes(name,value,fill=name))+
  geom_bar(stat = "identity")+
  theme_bw()+
  scale_fill_manual(values = c("#f7fcfd","#e5f5f9",
                               "#ccece6","#99d8c9",
                               "#66c2a4",
                               "#41ae76","#238b45","#006d2c","#00441b"))
           

复制

R语言ggplot2科研数据作图配色的一些小技巧本篇推文来自于公众号读者的投稿

image.png

友情提示:使用这个在线配色网站需要科学上网

配色小技巧之三:R语言包 RImagePalette

“我于人间全无敌,不与天战与谁战”——柳白

R语言ggplot2科研数据作图配色的一些小技巧本篇推文来自于公众号读者的投稿

image.png

很喜欢这张柳白大战昊天的照片,喜欢柳白一往无前的大河剑气(视频截图,原视频颜色看起来很纯净),现在我想把剑气的颜色放到我的绘图中,该怎么办呢?

RImagePalette完美解决了这个问题

首先是安装R包

install.packages("RImagePalette")
           

复制

读取图片

library("RImagePalette")
myfigure <- jpeg::readJPEG(file.choose()) #选择你想上传的图片
display_image(myfigure)
           

复制

R语言ggplot2科研数据作图配色的一些小技巧本篇推文来自于公众号读者的投稿

image.png

这样,就把照片导入Rstudio了,下面把图片中的颜色提取出来。

颜色提取

mycolors <- image_palette(myfigure, n=30)
scales::show_col(mycolors)
           

复制

R语言ggplot2科研数据作图配色的一些小技巧本篇推文来自于公众号读者的投稿

image.png

颜色提取完了,不过我最想要的白色没提取成功,可能和图片太糊有关。图片里的颜色不能直接复制,我就不试效果了。大家如果知道怎么把这些颜色的代码导出来可以在评论区里说一下,谢谢。

(这里mycolors直接就是包含颜色值的向量)

R语言ggplot2科研数据作图配色的一些小技巧本篇推文来自于公众号读者的投稿

配色小技巧之四:R语言包 ggsci——一剑破万法!

ggsci我最喜欢的调色R包了,里面包含nature,science,柳叶刀等知名杂志的调色风格。前面介绍的三种方法还是需要我们自己去挑选颜色,去配色。有时候感觉自己配出的颜色还是不好看,ggsci包的出现完美解决了这个问题,与ggplot2包联用可以绘制各式符合杂志要求的配色方案,我最喜欢包里面Nature风格的配色。现在试试Nature期刊的颜色风格。

  • 首先是Nature的配色
library(ggsci)
ggplot(data=data,aes(name,value,fill=name))+
  geom_bar(stat = "identity")+
  scale_fill_npg()
           

复制

R语言ggplot2科研数据作图配色的一些小技巧本篇推文来自于公众号读者的投稿

image.png

  • 再来试试science
ggplot(data=data,aes(name,value,fill=name))+
  geom_bar(stat = "identity")+
  scale_fill_aaas()
           

复制

R语言ggplot2科研数据作图配色的一些小技巧本篇推文来自于公众号读者的投稿

image.png

R语言ggplot2科研数据作图配色的一些小技巧本篇推文来自于公众号读者的投稿

image.png

好的,今天的分享就到这里,感觉有用的话,各位老铁点个赞吧!

备注

  • 小技巧三来自最近刚看到的公众号文章:“R语言作图中的“吸星大法”:捕捉图片上的颜色为我所用!公众号:R语言和统计,作者小善。
  • ggsci配色方案表引用自“教你用科学杂志喜欢的配色作图——R包ggsci”作者:stanford_strive。文章链接:https://www.jianshu.com/p/71fc7e2561c4

排版编辑:小明

今天推文的示例代码下载链接会放到次条推文的留言区,如果需要的话可以到次条留言区获取

欢迎大家关注我的公众号