前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言可视化——ggplot图表配色技巧

R语言可视化——ggplot图表配色技巧

作者头像
数据小磨坊
发布2018-04-11 14:52:41
3.6K0
发布2018-04-11 14:52:41
举报
文章被收录于专栏:数据小魔方

今天跟大家分享ggplot图表的配色原理与基本技巧。

图表配色是一个很深奥的话题,多亏了R语言平台的众多开发者贡献的配色包,让图表的配色不再深不可测。

这里我暂且将所有的配色场景划分为两类:

离散变量配色与连续变量配色

ggplot函数的配色机制相对来说比较智能,当你给colour或者fill属性指定给变量映射的时候,该函数就会自动的区分变量属性(是离散变量或者是连续变量),进而给出适用于两种情况的配色风格。

ggplot(diamonds,aes(carat,price,colour=cut))+geom_point()

ggplot(diamonds,aes(carat,price,colour=depth))+geom_point()

大家可以对比以上两句代码:我并没有指定任何实际的颜色,只是将colour颜色属性指定给离散变量cut或者连续变量depth,而输出的图表已经完成了默认的离散颜色映射和连续颜色渐变映射。

对于以上两种类型颜色使用场景,如果是要自行修改,则需要自行定义颜色标度:

离散颜色标度:

scale_colour_XXX:

这里最经常适用的三种情况

第一种情况,使用ggthemes包中的颜色主题,其中有些非常流行的颜色主题,如经济学人的主题scale_colour_economist()、scale_colour_wsj(),还有excel的主题、tableau主题以及stata主题。

第二种情况,可以使用RColorBrewer包中的配色卡,以下是该包scale_colour_brewer()函数所允许使用的所有离散颜色色卡。

该配色系统方案给予我们三种关于分类变量的配色场景:

同色系方案,即在同一个色系中均匀取出若干个色段,用于分类变量填充,最终呈现的效果,看起来非常清爽,图中最上面的一排颜色均为此类。(适用于表达有序因子分类变量,比如GDP的分段呈现等)

二分色系方案,即两个色系方向平滑过渡,均匀取值,中间色一般为白色或者淡色。(适用于表达含有正负值的分类数量段,譬如增长率指标、利润率等)

多分类不同色系方案,取不同色系相对协调的一组颜色,这种情况比较适合用于表达仅作分类,分类项之间没有顺序和大小的普通情况。

以上色卡以及配色包是由一个著名的专做地图可视化配色方案的团队所开发的,网址如下,提供在线配色并免费下载服务。(网站可能被屏蔽,如无法打开需要使用V**)

http://colorbrewer2.org/#

当然第三种就是自己DIY了,R支持直接调用可识别的颜色名称以及颜色代码(16进制代码)。

scale_fill_manual(values=c("#FB882C","#5B88A0"))

或者

scale_fill_manual(values=c("Linen","Peru","PeachPuff","SandyBrown","Chocolate"))

而针对连续型变量颜色修改的情况,可探讨的余地不多:

scale_fill_gradient()

scale_fill_gradient2()

scale_fill_gradient()允许分配一组双色连续渐变,low="white",high="red"

scale_fill_gradient2()允许分配一组三色连续渐变,low="blue",mid="white",high="red"

接下来针对以上几种情况,我分别演示一个案例:

library("ggthemes")

library("RColorBrewer")

离散型:

###使用ggthemes包中的颜色主题(华尔街日报的主题色模板)

ggplot(diamonds,aes(carat,price,colour=cut))+geom_point()+scale_colour_wsj()

###使用RColorBrewer包中的配色卡

ggplot(diamonds,aes(carat,price,colour=cut))+geom_point()+scale_colour_brewer(palette="Greens")

###使用DIY方式自己制作配色卡

ggplot(diamonds,aes(carat,price,colour=cut))+geom_point()+scale_colour_manual(values=c("#84CEFC","#ACDAE4","#5C9EA4","#04FEFC","#4CD2CC"))

连续型:

双色渐变:

ggplot(diamonds,aes(carat,price,colour=depth))+geom_point()+scale_colour_gradient(low="white",high="Blue")

三色渐变:

ggplot(diamonds,aes(carat,price,colour=depth))+geom_point()+scale_colour_gradient2(low="#8E0F2E", mid="#BFBEBE", high="#0E4E75")

以上就是R中最常用到的配色技巧,可以满足我们大部分使用场景的需求。

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

本文分享自 数据小魔方 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
灰盒安全测试
腾讯知识图谱(Tencent Knowledge Graph,TKG)是一个集成图数据库、图计算引擎和图可视化分析的一站式平台。支持抽取和融合异构数据,支持千亿级节点关系的存储和计算,支持规则匹配、机器学习、图嵌入等图数据挖掘算法,拥有丰富的图数据渲染和展现的可视化方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档