R ggplot2 修改默认颜色的操作

 更新时间:2021年5月6日 13:51  点击:2665

我们都知道ggplot2包是R的神器,很多生物学文章都选择用这个包来画图。用ggplot2就像玩俄罗斯方块一样,一层一层地往上叠加元素,这使得它用起来很方便。

个人觉得它默认的配色系统很不错,但看到颜色后却不知道这种颜色叫啥,今天就来介绍一下,如果你有1~6个元素,ggplot2给的配色分别是啥。

1个元素:

2个元素(颜色分配顺序为先从左到右,后从上到下):

3个元素:

4个元素:

5个元素:

6个元素:

多余6个元素大家可以用下面的代码去实现

运行的代码为:

library(scales)
show_col(hue_pal()(n)) #n为1~6

补充:R语言ggplot中的颜色

ggplot2分组时默认使用的颜色,可以从另一个hadley写的包,scales包中调用。这个包算是一个工具包,用于和hadley写的其他包配合使用,颜色是其中一部分。

library(scales)
show_col(hue_pal()(3))
# show_col(hue_pal(h = c(0, 360) + 15, c = 100, l = 65)(3)) # 和上面一样,默认设置

hue_pal函数的默认设置,其中h是色相,范围越大,相邻颜色之间差异越大;c是饱和度,值越大色彩越浓艳饱满;l是亮度,大亮小暗。

柱状图的颜色搭配:

colorbar <- function(values){
 groupbar + scale_fill_manual(values = values)
}
 
colorlist <- list(c("#8FBC94","#548687"),c("#4FB0C6","#4F86C6"),
         c("#C65146","#EC6A5C"),c("#6E7783","#77AAAD"),
         c("#e97f02","#f8ca00"),c("#3a5134","#4f953b"),
         c("#99CCCC","#FFCC99"),c("#CC9999","#CCCC99"),
         c("#0099CC","#FF6666"),c("#339966","#996699"),
         c("#CC9966","#666666"),c("#336666","#CCCC33"),
         brewer.pal(7, "Set1")[c(1,2)],brewer.pal(7, "Set1")[c(3,4)],
         brewer.pal(7, "Set2")[c(5,6)],brewer.pal(7, "Set3")[c(6,7)],
         brewer.pal(7, "Greens")[c(4,5)],brewer.pal(7, "Blues")[c(4,5)],
         brewer.pal(7, "Oranges")[c(4,5)],brewer.pal(7, "Purples")[c(4,5)]
         )
 
p <- marrangeGrob(lapply(colorlist, colorbar), nrow=0.5*length(colorlist), ncol=2, top="")
p

另外两个比较常用的颜色设置:

scale_fill_manual(): 填充色

scale_color_manual():轮廓色,如点线

以上为个人经验,希望能给大家一个参考,也希望大家多多支持猪先飞。如有错误或未考虑完全的地方,望不吝赐教。

[!--infotagslink--]

相关文章

  • C语言中的字符(char)详细讲解

    本篇文章主要介绍C语言中char的知识,并附有代码实例,以便大家在学习的时候更好的理解,有需要的可以看一下...2020-04-25
  • C++ STL标准库std::vector的使用详解

    vector是表示可以改变大小的数组的序列容器,本文主要介绍了C++STL标准库std::vector的使用详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2022-03-06
  • php KindEditor文章内分页的实例方法

    我们这里介绍php与KindEditor编辑器使用时如何利用KindEditor编辑器的分页功能实现文章内容分页,KindEditor编辑器在我们点击分页时会插入代码,我们只要以它为分切符,就...2016-11-25
  • 一文彻底理解js原生语法prototype,__proto__和constructor

    作为一名前端工程师,必须搞懂JS中的prototype、__proto__与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,下面这篇文章主要给大家介绍了关于js原生语法prototype,__proto__和constructor的相关资料,需要的朋友可以参考下...2021-10-24
  • Jupyter Notebook读取csv文件出现的问题及解决

    这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06
  • php错误提示 open_basedir restriction in effect 解决

    今天在帮助一个朋友配置一台服务器时发现网站配置好了缓存目录读写不成功,在打开错误时发现提示 Warning: file_exists() [function.file-exists]: open_basedir restr...2016-11-25
  • python-for x in range的用法(注意要点、细节)

    这篇文章主要介绍了python-for x in range的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-10
  • Go应用中优雅处理Error的技巧总结

    在程序员中,尤其是go新手,经常听到的一个讨论话题是:如何处理错误,这篇文章主要给大家介绍了关于Go应用中优雅处理Error的一些相关技巧,需要的朋友可以参考下...2021-09-08
  • 基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能

    这篇文章主要介绍了基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23
  • Swagger中@ApiIgnore注解的使用详解

    这篇文章主要介绍了Swagger中@ApiIgnore注解的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-21
  • mybatis 返回Integer,Double,String等类型的数据操作

    这篇文章主要介绍了mybatis 返回Integer,Double,String等类型的数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-25
  • 详解redis desktop manager安装及连接方式

    这篇文章主要介绍了redis desktop manager安装及连接方式,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2021-01-15
  • MyBatisPlus-QueryWrapper多条件查询及修改方式

    这篇文章主要介绍了MyBatisPlus-QueryWrapper多条件查询及修改方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2022-06-27
  • vue项目页面嵌入代码块vue-prism-editor的实现

    这篇文章主要介绍了vue项目页面嵌入代码块vue-prism-editor的实现,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-10-30
  • iOS给border设置渐变色的方法实例

    这篇文章主要给大家介绍了关于iOS给border设置渐变色的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-09
  • 使用Python的pencolor函数实现渐变色功能

    这篇文章主要介绍了使用Python的pencolor函数实现渐变色功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-09
  • 解决vue的router组件component在import时不能使用变量问题

    这篇文章主要介绍了解决vue的router组件component在import时不能使用变量问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-27
  • 深入研究mysql中的varchar和limit(容易被忽略的知识)

    为什么标题要起这个名字呢?commen sence指的是那些大家都应该知道的事情,但往往大家又会会略这些东西,或者对这些东西一知半解,今天我总结下自己在mysql中遇到的一些commen sense类型的问题。 ...2015-03-15
  • php取整函数ceil,floor,round的用法及介绍

    ceil 是向上进位得到一个值的函数;floor 是舍掉小数位得到一个值的函数;round 是用来四舍五入的函数ceil定义和用法:ceil() 函数向上舍入为最接近的整数。...2013-09-28
  • C#使用StreamWriter写入文件的方法

    这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25