R语言 使用颜色来创建引人入胜的视觉效果
颜色是沟通信息的一种有效媒介。数据的颜色显示在可视化和探索性数据分析中起着关键作用。准确地使用颜色来显示数据,可以知道数据中的相互关系和模式。不小心使用颜色会产生不确定的模式,所以,它变得难以理解。数据分析的主要部分是讲故事,在讲故事中使用颜色可以帮助堆积者轻松理解仪表板。适当地使用颜色是为了做出有效的数据驱动的决策。
在R中使用颜色来创造吸引人的视觉效果
我们必须使用颜色来创造高质量的视觉效果,这样,对观众来说才有意义。它可以帮助浏览者和堆积者更快、更有效地理解信息。颜色在数据可视化中起着重要作用。观众需要轻松地理解报告,所以如果我们突出某些信息,促进信息的回忆,观众就会很容易理解分析师所创建的报告。战略性地使用颜色可以帮助模式识别,并吸引人们对重要信息的注意,这正是我们在本文中使用R语言所要研究的内容。
使用颜色时需要遵循的一些规则
- 使用单一颜色来表示连续数据。
- 使用对比色来表示列之间的比较。
- 使用颜色使重要的数据脱颖而出。
- 使用有限的颜色。在一个仪表盘中使用太多的颜色会导致歧义。
- 为你的数据使用正确的图表样式和颜色。
为了演示颜色在图表中的使用,我们将在本文中使用Palmer Penguins数据集,它有8个属性和344个观测值。企鹅的数据集给出了关于企鹅身体的完整信息。
# install packages
install.packages("dplyr")
install.packages("palmerpenguins")
# load packages
library(dplyr)
library(palmerpenguins)
# summary of penguins dataset
summary(penguins)
输出
企鹅数据集的摘要
使用ggplot的默认颜色
当我们使用ggplot2包绘制一些可视化的数据时,库中提供了默认的颜色来区分提供给可视化的数据中的不同类别。
# load packages
install.packages("ggplot2")
library(ggplot2)
# data layer + Geometric layer + Aesthetics layer
ggplot(data = penguins) + geom_bar(mapping =
aes(x=bill_length_mm, fill = species))
输出
带有默认颜色的图谱
如果我们对每只不同喙长和喙深的企鹅使用条形图,我们就不能得到清晰的数据,所以,使用正确的图和颜色是很重要的,下面是一个很好地使用合适的图和颜色的例子。另外,在下面的图表中,我们可以观察到一件事,那就是所使用的颜色与前面的可视化中的颜色相同,这使得分析报告变得枯燥和不全面。
# load packages
library(ggplot2)
# data layer + Geometric layer + Aesthetics layer
ggplot(data = penguins) + geom_point(mapping =
aes(x=bill_length_mm, y=bill_depth_mm, col = species))
输出
使用ggplot形成的不同颜色的图表
我们通常使用col aesthetic在我们的视觉效果中使用颜色,在条形图的情况下,col aesthetic不提供颜色变化,它只是在条形图中勾勒出条形,所以,对于这个问题,我们使用fill属性来代替cool aesthetic。
#install and load packages if you are using new R script
age <- c(19,34,56,23,45,18,34,32,17,15,16,9)
gender <- c("f","f","m","f","m","m","m","f","m","m","f","m")
height_in_cm <- c(183.98,178.56,167.984,156.78,178.35,145.78,190.23,167.23,156.278,178.89,189.56,130.90)
people <- data.frame(age, gender, height_in_cm)
ggplot(data = people) + geom_line(mapping = aes(x = height_in_cm, y = age, col = gender))
输出
Wes Anderson包在R中创建引人入胜的可视化效果
在R语言中也有一些内置的调色板,这些调色板可以在Wes Anderson包中找到。在R脚本中安装韦斯-安德森包以访问R语言中可用的调色板。
语法
wes_palette(name, n, type = c(“discrete”, “continuous”))
参数
- name – 颜色调色板的名称
- n – 所需颜色的数量
- 类型
- 离散型
- 连续的
Wes Anderson的一些可用调色板如下所示。
- Royal1
- Cavalcanti1
- GrandBudapest1
- Moonrise1
- FantasticFox1
让我们开始安装这个软件包。
# install package wesanderson
install.packages("wesanderson")
library(wesanderson)
现在我们将绘制一些调色板,并进一步使用它们来制作可视化。我们要看的第一个调色板是 Royal1。
wes_palette("Royal1")
输出
韦斯-安德森软件包中的Royal1调色板
现在让我们用这个 Royal1 调色板做一个可视化。
monochromatic <- ggplot(penguins, aes(x = bill_length_mm,
y = bill_depth_mm,
color = species)) +
geom_point(stat = "identity")
# Royal1 is a available palette name
monochromatic +
scale_color_manual(values = wes_palette(n=3,
name = "Royal1"))
输出
使用Royal1调色板绘制图表
现在我们来看看Cavalcanti1调色板。
wes_palette("Cavalcanti1")
输出
Cavalcanti1调色板
现在让我们用这个 Cavalcanti1 调色板做一个可视化。
cavalcanti <- ggplot(penguins, aes(x = species,
y = body_mass_g,
fill = species)) + geom_bar(stat = "identity")
# cavalcanti is a available palette name
cavalcanti +
scale_color_manual(values = wes_palette(n=3,
name = "Cavalcanti1"))
输出
使用Cavalcanti1调色板绘制图表
R语言 创建引人入胜的可视化的RColorBrewer包
另一个我们可以用来在R中创建良好的可视化的包是使用RColorBrewer。这个包可以为可视化创建好看的调色板。要了解更多关于RColorBrewer包的信息。这篇文章还涵盖了不同类型的调色板,如连续调色板、发散调色板和定性调色板。
# install and load RColorBrewer
install.packages("RColorBrewer")
library(RColorBrewer)
我们可以用brewer.pal.info列出所有颜色及其关键信息。
brewer.pal.info
输出
RColorBrewer软件包中提供的不同调色板
RColorBrewer中的功能
下面是一些内置的函数,在使用RColorBrewer包在分析过程中为我们的可视化填充颜色时非常方便。
功能描述 | 说明 |
---|---|
brewer.pal(n, name) | 使ColorBrewer的调色板作为R调色板可用。 |
display.the brewer.pal(n, name) | 在R窗口中显示选定的调色板 |
display.brewer.all(n, type, colorblindFriendly) | 在一个R窗口中同时显示几个调色板 |
brewer.pal.info | 以数据帧形式返回所有可用调色板的信息。brewer.pal.info不是一个函数,而是一个变量。 |
scale_fill_brewer() | 用于为柱状图、箱形图、小提琴图、点状图着色 |
scale_color_brewer() | 用户对线和点进行着色 |
RColorBrewer中的函数的参数
为了用相同的函数获得不同的结果,我们也可以传递不同类型的参数,这可以帮助我们获得符合我们要求的结果。
参数 | 描述 |
---|---|
n | 调色板中不同颜色的数量,最小为3,最大取决于调色板。 |
name | 可用调色板中的一个调色板名称 |
type | 用于指定调色板的类型,使用 “div”、”qual”、”seq “或 “all “字符串。 |
select | 现有调色板的名称列表 |
exact.n | 如果为 “true”,只显示颜色编号为n的调色板。 |
colorblind-friendly | 如果为 “true”,只显示对色盲友好的调色板。 |
要获得任何特定调色板的信息,我们可以使用display.brewer.pal函数来显示一个网格,其中包括该特定调色板中的不同颜色条。
# display specific R color brewer palette
display.brewer.pal(n = 8, name = 'Dark2')
输出
RColorBrewer软件包中的Dark2调色板
我们还可以打印各自调色板的十六进制代码。
# return hexadecimal code of color palette
brewer.pal(n = 8, name = 'RdBu')
输出
"#B2182B" "#D6604D" "#F4A582" "#FDDBC7" "#D1E5F0" "#92C5DE" "#4393C3" "#2166AC"
现在让我们看看一些调色板的操作。首先,我们将在下面的可视化中尝试使用 Dark2 调色板。
temp <- ggplot(data=penguins) + geom_point(mapping = aes(x = bill_length_mm,
y = bill_depth_mm,
col = species))
temp + scale_color_brewer(palette = 'Dark2')
输出
使用Dark2调色板的示范性绘图
现在,我们将在下面的可视化中尝试使用 绿色 调色板。
temp <- ggplot(data=penguins) + geom_point(mapping = aes(x = bill_length_mm,
y = bill_depth_mm,
col = species))
temp + scale_color_brewer(palette = 'Greens')
输出
带有绿色调色板的示范性绘图
现在,我们将在下面的可视化中尝试使用 RdGy 调色板。
temp <- ggplot(data=penguins) + geom_point(mapping = aes(x = bill_length_mm,
y = bill_depth_mm,
col = species))
temp + scale_color_brewer(palette = 'RdGy')
输出
带有RdGy调色板的示范性绘图