R语言中的基础作图和ggplot2配色系统

颜色代码大全

https://www.cnblogs.com/cnblogs-jcy/p/5689033.html

R语言中的调色板

 palette(value) # obtain the curren palette or set the palette
 palette.pals() # give the names of predefined palettes
 palette.colors() # return a vector of R colors

在这里插入图片描述

RColorBrewer提供的调色盘

其他颜色集可以从R包RColorBrewer中获取,利用命令display.brewer.all()可以显示出该包中全部的颜色集:

library(RColorBrewer)
display.brewer.all()

在这里插入图片描述
palete()#设置全局调色盘
brewer.pal(n, name)#调用相应调色盘的颜色

R语言中配色介绍

R语言作图中颜色的调整往往是通过给参数col赋值来实现的,其接受的类型有:数字、颜色名、rgb()、十六进制。

R语言中通过很多调色板,帮助提供配色方案。

在这里插入图片描述
在这里插入图片描述

R语言中自带的调色板

R语言中自带的调色板有hcl, rainbow, heat, terrain, topo, cm等, 用法如下:

hcl.colors(n, palette = "viridis", alpha = NULL, rev = FALSE, fixup = TRUE)
hcl.pals(type = NULL)
rainbow(n, s = 1, v = 1, start = 0, end = max(1, n - 1)/n, alpha, rev = FALSE)
heat.colors(n, alpha, rev = FALSE)
terrain.colors(n, alpha, rev = FALSE)
topo.colors(n, alpha, rev = FALSE)
cm.colors(n, alpha, rev = FALSE)

在这里插入图片描述

RColorBrewer包提供更多的调色板

RColorBrewer包提供了按照 序列型(sequential)、离散型(diverging)、分类型(qualitative) 提供的三种类型的调色盘。利用display.brewer.all()可以展示出全部的调色板样式:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
随后我们通过brewer.pal(n, name)函数就可以调用相应name的调色板了,例如:
在这里插入图片描述

ggplot2中配色系统的介绍

ggplot2包中对配色系统主要通过以下几个函数实现:

  • 数值型
    • scale_colour/fill_coninuous()
    • scale_fill_distiller()
    • scale_colour/fill_gradient()
    • scale_colour/fill_gradient2()
    • scale_colour/fill_gradientn()
  • 类别型
    • scale_colour/fill_discrete()
    • scale_colour/fill_brewer()
    • scale_colour/fill_manual()
      其中,colour表示轮廓色度量,fill表示填充色度量

数值型配色

类别型配色

scale_colour/fill_brewer()

用法

scale_colour_brewer(
  ...,
  type = "seq",
  palette = 1,
  direction = 1,
  aesthetics = "colour"
)

scale_fill_brewer(
  ...,
  type = "seq",
  palette = 1,
  direction = 1,
  aesthetics = "fill"
)

参数介绍:

… Other arguments passed on to discrete_scale(),
continuous_scale(), or binned_scale(), for brewer, distiller, and
fermenter variants respectively, to control name, limits, breaks,
labels and so forth.

type One of seq (sequential), div (diverging) or qual (qualitative)

palette If a string, will use that named palette. If a number, will
index into the list of palettes of appropriate type. The list of
available palettes can found in the Palettes section.

direction Sets the order of colours in the scale. If 1, the default,
colours are as output by RColorBrewer::brewer.pal(). If -1, the order
of colours is reversed.

aesthetics Character string or vector of character strings listing
the name(s) of the aesthetic(s) that this scale works with. This can
be useful, for example, to apply colour settings to the colour and
fill aesthetics at the same time, via aesthetics = c(“colour”,
“fill”).

values if colours should not be evenly positioned along the gradient
this vector gives the position (between 0 and 1) for each colour in
the colours vector. See rescale() for a convenience function to map an
arbitrary range to between 0 and 1.

space colour space in which to calculate gradient. Must be “Lab” -
other values are deprecated.

na.value Colour to use for missing values

guide Type of legend. Use “colourbar” for continuous colour bar, or
“legend” for discrete colour legend.

scale_colour/fill_brewer()是利用已有的颜色集进行配色的,ggplot2中自带的颜色集有:
在这里插入图片描述

其他颜色集可以从R包RColorBrewer中获取,利用命令display.brewer.all()可以显示出该包中全部的颜色集:

library(RColorBrewer)
display.brewer.all()

在这里插入图片描述

scale_colour/fill_manual()

https://zhuanlan.zhihu.com/p/80849532

ggsci为ggplot2提供期刊配色

ggsci是一款优秀的ggplot2的配色包,包含了常见杂志的配色,比如lancet,jco,jama,nejm等,主要通过以下2句代码进行配色:

scale_folor_palname
scale_fill_palname

在这里插入图片描述
可参考:https://zhuanlan.zhihu.com/p/454703155

  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
译本序, 每当我们看到一个新的软件,第一反应会是:为什么又要发明一个新软件?ggplot2是R世界里相对还比较年轻的一个包,在它之前,官方R已经有自己的基础图形系统(graphics包)和网格图形系统(grid包),并且Deepayan Sarkar也开发了lattice包,看起来R的世界对图形的支持已经足够强大了。那么我们不禁要问,为什么还要发明一套新的系统?, 设计理念, 打个比方,想想我们小时候怎样学文的。最开始的时候我们要识字,不认识字就没法阅读和写作,但我们并不是一直按照一个个汉字学习的,而是通过句子和具体的场景故事学习的。为什么不在小学时背六年字典呢?那样可能认识所有的汉字。原因很简单,光有单字,我们不会说话,也无法阅读和写作。缺的是什么?答案是对文字的组织能力,或者说语法。, R的基础图形系统基本上是一个“纸笔模型”,即:一块画布摆在面前,你可以在这里画几个点,在那里画几条线,指哪儿画哪儿。后来lattice包的出现稍微改善了这种情况,你可以说,我要画散点图或直方图,并且按照某个分类变量给图的元素上色,此时数据才在画图扮演了一定的心角色,我们不用去想具体这个点要用什么颜色(颜色会根据变量自动生成)。然而,lattice继承了R语言的一个糟糕特征,就是参数设置铺天盖地,足以让人窒息,光是一份xyplot()函数的帮助文档,恐怕就够我们消磨一天时间了,更重要的是,lattice仍然面向特定的统计图形,像基础图形系统一样,有直方图、箱线图、条形图等等,它没有一套可以让数据分析者说话的语法。, 那么数据分析者是怎样说话的呢?他们从来不会说这条线用#FE09BE颜色,那个点用三角形状,他们只会说,把图的线用数据的职业类型变量上色,或图点的形状对应性别变量。有时候他们画了一幅散点图,但马上他们发现这幅图太拥挤,最好是能具体看一下里面不同收入阶层的特征,所以他们会说,把这幅图拆成七幅小图,每幅图对应一个收入阶层。然后发现散点图的趋势不明显,最好加上回归直线,看看回归模型反映的趋势是什么,或者发现图离群点太多,最好做一下对数变换,减少大数值对图形的主导性。, 从始至终,数据分析者都在数据层面上思考问题,而不是拿着水彩笔和调色板在那里一笔一划作图,而计算机程序员则倾向于画点画线。Leland Wilkinson的著作在理论上改善了这种状况,他提出了一套图形语法,让我们在考虑如何构建一幅图形的时候不再陷在具体的图形元素里面,而是把图形拆分为一些互相独立并且可以自由组合的成分。这套语法提出来之后他自己也做了一套软件,但显然这套软件没有被广泛采用;幸运的是,Hadley Wickham在R语言把这套想法巧妙地实现了。, 为了说明这种语法的想法,我们考虑图形的一个成分:坐标系。常见的坐标系有两种:笛卡尔坐标系和极坐标系。在语法,它们属于一个成分,可自由拆卸替换。笛卡尔坐标系下的条形图实际上可以对应极坐标系下的饼图,因为条形图的高可以对应饼图的角度,本质上没什么区别。因此在ggplot2,从一幅条形图过渡到饼图,只需要加极少量的代码,把坐标系换一下就可以了。如果我们用纸笔模型,则可以想象,这完全是不同的两幅图,一幅图里面要画的是矩形,另一幅图要画扇形。, 更多的细节在本书会介绍,这里我们只是简略说明用语法画图对用纸笔画图来说在思维上的优越性;前者是说话,后者是说字。, 发展历程, ggplot2是Hadley在爱荷华州立大学博士期间的作品,也是他博士论文的主题之一,实际上ggplot2还有个前身ggplot,但后来废弃了,某种程度上这也是Hadley写软件的特征,熟悉他的人就知道这不是他第一个“2”版本的包了(还有reshape2)。带2的包和原来的包在语法上会有很大的改动,基本上不兼容。尽管如此,他的R代码风格在R社区可谓独树一帜,尤其是他的代码结构很好,可读性很高,ggplot2是R代码抽象的一个杰作。读者若感兴趣,可以在GitHub网站上浏览他的包:https://github.com/hadley。在用法方面,ggplot2也开创了一种奇特而绝妙的语法,那就是加号:一幅图形从背后的设计来说,是若干图形语法的叠加,从外在的代码来看,也是若干R对象的相加。这一点精妙尽管只是ggplot2系统的很小一部分,但我个人认为没有任何程序语言可比拟,它对作为泛型函数的加号的扩展只能用两个字形容:绝了。, 至2013年2月26日,ggplot2的邮件列表(http://groups.google.com/group/ggplot2 )订阅成员已达3394人,邮件总数为15185封,已经成为一个丰富、活跃的用户社区。未来ggplot2的发展也将越来越依赖于用户的贡献,这也是很多开源软件最终的走向。, 关于版本更新, 原书面

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值