R作图配色---颜色提取及色彩搭配

本文探讨了如何从SCI高分文章中提取颜色灵感,并在R中进行图表颜色搭配,以增强数据可视化的吸引力。通过使用RImagePalette包读取并提取图片颜色,以及ggsci包提供的预设色彩方案,可以轻松改善图表的视觉效果。此外,作者鼓励读者尝试自己创造色彩搭配,以打造独具个性的图表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看SCI文章,发现一个规律,越是高分的文章作图越是“花里胡哨”,出各种新奇的图,色彩上也很鲜艳,而大多数人就喜欢看那种花里胡哨的。其实很多时候,我们里高分文章的图只差一个思路和配色,同样的数据别人做的图看起来很好,很大原因是颜色搭配的好。今天我们就谈谈R的色彩搭配,让你的作图可视化向高分文章看齐。

一、提取颜色
看到别人文章中好看的配色,直接提取是最方便的方法,可以使用AI或者PPT操作,主要是为了得到颜色的十六进制代码,可用于R绘图。不过这里我们介绍一种R的方式,可以将图片读入R中,提取一张图片所有颜色。
首先截取文献的图片,尽量清晰,然后读入


install.packages("RImagePalette")
library(RImagePalette)
library(png)
setwd("F:/生物信息学/图片读入及颜色提取")
picture <- readPNG("1648549584(1).png")
r <- nrow(picture)/ncol(picture) 
plot(c(0,1),c(0,r),type = "n",xlab = "",ylab = "",asp=1)
rasterImage(picture,0,0,1,r)
#display_image(picture)

然后尽可能多的获取颜色,并查看颜色,然后自行搭配。

mycolor<-image_palette(picture,n=30)
scales::show_col(mycolor)
mycolor
#"#B84D64" "#864A68" "#EE7072" "#E32D32" "#998B95" "#5E549A" "#8952A0" "#4552A0" "#384B97" "#2B3B72" "#911310"
#"#384C99" "#9B8E8C" "#7CA878" "#35A132" "#6B70B0" "#3D6AAA" "#394D9B" "#75ACC3" "#20ACBD" "#38509F" "#959897"
#"#F4A2A3" "#F69896" "#B6CCD7" "#AF98B5" "#E01516" "#A09C9A" "#F6EDEF" "#FFFFFF"

二、自动色彩搭配R包
还记得我们在说单细胞UMAP修饰的时候(单细胞基因可视化之UMAP图修饰),里面提到过一个函数ggsci。这个包提供了各种形式的色彩搭配,有适用于连续变量的--=例如热图,也有离散性变量的颜色搭配,还是比较方便的。与ggplot2配合使用,做好图之后,选择需要的主题修饰即可。

library(ggsci)
p
p+scale_color_npg()

以下是ggsci网站提供的各种主题函数汇总:https://nanx.me/ggsci/articles/ggsci.html

三、自己造
要说最简单粗暴、最有个性的搭配还是靠自己,这里分享R语言颜色表以供参考,还请不要太过“浓妆艳抹”。想要获取完整版的可以在《KS科研分享与服务》公众号后台回复:R语言颜色,自行下载。

快去修改下自己图的颜色吧,让其变个装!

### 单细胞数据分析中的Dotplot教程 在单细胞数据可视化工具中,`Seurat`包提供了多种方法来展示基因表达模式及其模块特性。其中一种常用的方法是通过点图(dotplot),该图表能够有效地表示不同簇之间的标记基因表达情况以及这些基因的平均表达水平和频率。 为了创建一个基于`Seurat`对象的dotplot,可以利用`DoHeatmap()`函数或者专门用于绘制此类图形的功能——`DotPlot()`。下面是一个简单的Python代码实例,展示了如何使用R语言中的`Seurat`库生成这样的图像: ```r library(ggplot2) library(cowplot) library(Seurat) # 假设seurat_obj已经包含了处理好的单细胞RNA测序数据集 # 计算每个cluster内的marker genes并保存到变量markers中 markers <- FindAllMarkers(seurat_obj, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25) # 使用DotPlot()函数制作dotplot dp <- DotPlot( object = seurat_obj, features = markers$gene[which(markers$p_val_adj < 0.01)], cols = c("lightgrey", "red"), dot.scale = 8 ) + RotatedAxis() print(dp) ``` 这段脚本首先调用了`FindAllMarkers()`去识别各个聚类(cluster)特有的标志物(marker),接着选取显著性的基因作为输入参数传递给`DotPlot()`。最终得到的结果是以颜色深浅反映相对丰度、圆圈大小体现比例关系的散点矩阵形式呈现出来[^1]。 值得注意的是,在实际操作过程中可能还需要调整一些绘图选项以满足具体需求;比如改变配色方案(`cols`)或是缩放因子(`dot.scale`)等设置都可以帮助优化视觉效果以便更好地理解数据特征。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值