数据科学导论/像视觉艺术家一样思考
作为视觉艺术家思考,五个设计元素——和谐、节奏、流动、平衡和焦点——是必不可少的考量因素。数据科学家必须富有创造力地将这些元素以合适的比例组合起来,才能将关键结论传达给受众。
有十多个"经验法则"来指导数据科学家以视觉艺术家的思维方式思考。[1] 我们只探讨其中一些。
维基词典将和谐定义为元素的悦耳组合。在视觉艺术中,和谐是形状和色彩的和谐运用。人类很容易接受,因此会被和谐的视觉呈现吸引。数据科学家需要确保解决方案的视觉表示能够很好地融合在一起。和谐的一个方面是在整个演示文稿中始终如一地使用一致的配色方案。一个流行的配色方案是取色盘上 3 或 4 个相邻的颜色,例如右上角的“土色”或左上角的“冷色”。“互补”配色方案将取色盘上相对侧的颜色。
同样,在构建一系列图表和图形时,数据科学家需要在所有图表和图形中保持一致的布局,包括使用相同的符号和字体。
维基百科将节奏定义为在时间和/或空间上,强弱元素或相反或不同的条件有规律地交替出现的模式。当数据科学家在数据中发现节奏时,她必须考虑如何以视觉方式传达这些节奏。正弦波在时间上显示出稳定的节奏。
一个有用的方法是显示数据与背景节奏(黑线)的偏差(蓝线),例如这个图表显示了过去 5.5 亿年的气候变化。
另一个例子是两个相互干扰的波的模拟图。
最后一个例子显示了两个变量之间的相关分布。由于高低点偏离中心但对称重复,因此相关性不是线性的,而是规则的,并且偏移了一个恒定值。
维基词典将流动定义为流体的运动。在视觉艺术中,流动是通过操纵色彩和形式产生的运动错觉。人眼会自然地跟随图像中的视觉线索。数据科学家需要确保解决方案的视觉表示能够通过引导眼睛从起点到终点来讲述一个“故事”。彼得·保罗·鲁本斯是一位精通艺术流动的巴洛克时期荷兰画家。在他的画作“法厄同的坠落”中,人们不得不将目光移向右上角。
数据科学家也是如此。他们对数据的分析得出了结论。诀窍在于描绘出帮助接收者得出结论的图像。有时流动是数据中固有的组成部分,例如流体绕过固体的运动,以及由此产生的湍流。
许多时候,数据表示的是相互关联的概念,这些关系以流程图的形式显示,例如 1987 年 7 月的《心理学评论》中的一张图。[2]
平衡是一个重要的视觉线索。最简单的平衡形式是对称。 维基百科将对称定义为在时间、空间或尺度上自相似。人类发现对称令人舒适。许多生物在空间上表现出对称性,例如蝴蝶。
人类也创造对称物体,例如建筑,如泰姬陵。
数据科学家将在视觉呈现问题的解决方案时利用人类对称的偏好。在下面的示例中,四个图表显示了尺寸对称——其中三个显示了比例对称。它们还被放置成既水平对称又垂直对称。这种多重对称有助于理解所呈现的信息。
虽然对称平衡有助于受众对数据演示感到舒适,但不对称平衡通常更具视觉吸引力。我们不是在谈论任何随机的不对称,而是两种特殊的不对称。我们将检查的第一个是三分法则,第二个是黄金分割。根据维基百科,“三分法则”建议将图像想象成被两条等距的水平线和两条等距的垂直线分成九个相等的部分,并将重要的构图元素放置在这些线或其交点上。该技巧的支持者声称,将主题与这些点对齐比简单地将主题居中更有利于产生更多张力、能量和兴趣。
在下面的示例中,图片已在不使用三分法则的情况下裁剪,并在使用三分法则的情况下裁剪。右边的图片将山顶放在底部三分之一的轴线上,将石头露头放在左边三分之一的轴线上,云层悬停在顶部三分之一的上方。
以视觉艺术家的思维方式思考意味着以“三分法则”的视角思考数据的可视化。例如,下面的图表利用了三分法则,将水平线放置在三分之一处,并在(想象的)最右边线的位置附近添加了关于上部水平线的注释。
虽然与三分法则有些类似,但黄金分割是一个发展得更成熟的概念,既在数学理论方面,也在应用于现实世界问题方面。根据维基百科,“黄金分割”定义为两个量,其中这两个量的和与较大量的比率等于较大量与较小量的比率。下面的图形说明了这种关系。
和
黄金分割用代数表示为
其中希腊字母“Phi”()代表黄金分割。它的值为
许多艺术家和建筑师都将他们的作品按近似黄金分割的比例进行设计——尤其是黄金矩形,其中长边与短边的比例为黄金分割——他们认为这种比例在美学上令人愉悦。黄金矩形可以被切割成一个正方形和一个具有相同纵横比的较小矩形。自欧几里得以来,数学家们一直在研究黄金分割,因为它具有独特的和有趣的性质。黄金分割也被用于金融市场分析,例如在斐波那契回调等策略中。黄金分割在日常设计中很常见,例如明信片、扑克牌、海报、宽屏电视、照片和开关面板的形状。心理学家进行了一些研究来检验黄金分割在人类对美的感知中所起作用的想法,例如女性的腰臀比、男性的肩臀比和额头与脸的比例。虽然一些早期研究支持了这种假设,但后来尝试对这种假设进行仔细检验的结果并不确定。
- 黄金分割应用的一个经典例子是 凯鲁万大清真寺,建于公元670年的突尼斯。黄金分割从整体设计到单个房间和柱子都反复出现。它不仅是伊斯兰世界最古老的礼拜场所之一,也是北非最令人印象深刻和最大的伊斯兰纪念碑之一。这座清真寺是建筑和伊斯兰艺术的杰作。
- 另一个例子是萨尔瓦多·达利的 最后的晚餐。画布的尺寸是一个黄金矩形。一个巨大的十二面体,从透视角度看,使得边彼此之间呈黄金分割,悬挂在耶稣的上方和后面,主导着整个画面。在国家美术馆可以看到这幅画的图片。[3]
随着数据科学家发展出更复杂的分析技能,他们也需要发展出更复杂的视觉呈现技能。黄金分割是一种将分析和视觉上的精妙之处和谐地融合在一起的方法。一种简单的方法是将演示文稿图表按照下面的示例进行分段
焦点
[edit | edit source]维基词典将焦点定义为注意力的集中。数据科学家想要创建可视化来吸引观众的注意力,使其关注重点。视觉艺术家通过对比大小(比例)、颜色和页面位置来创建焦点。重要的是要确保视觉元素具有支持内容的功能。例如,在 弗朗西斯科·戈雅的绘画“葡萄收割”中,他想要突出葡萄收割。首先,他使用了一个三角形的排列方式来安排人物,使葡萄位于三角形的顶点。他还将葡萄放置在一个明亮的(三角形的)云朵的中心,周围环绕着乌云。他巧妙地运用了设计和颜色,将焦点集中在他的画作主题上。
以下是一个使用焦点来突出基于数据的结论的良好示例。以下图表描绘了来自 世界概况 的高于和低于平均水平的国家人均GDP,以及来自 疾病控制与预防中心 的按国家划分的疟疾风险。
创造力
[edit | edit source]数据科学家必须运用创造力将这五个元素(和谐、节奏、流畅、平衡和焦点)以适当的比例组合在一起,以以有趣和信息丰富的方式将信息传达给观众。创造性过程包括发散性思维,它涉及为一个问题生成多个答案;概念融合,其中解决方案来自两个截然不同的参考框架的交集;以及打磨,其中一个可接受的解决方案从对解决方案的许多连续不可接受版本进行迭代中出现。在实践中,创造力通常是一项团队运动。当来自不同背景的几个人聚在一起解决一个问题时,他们更容易进行发散性思维和概念融合。打磨仅仅是好的、老式的努力。请不要爱上你的第一次尝试。将你的第一次尝试视为一个对话的开始(而不是结束),这个对话将吸引数据科学团队的成员以及该团队发现结果的潜在受众的成员。
以下图表是使用所有五个视觉元素的科学图形的良好示例。看看你是否能看出和谐、节奏、流畅、平衡和焦点是如何使用的。
- 该图像表明,分子中的原子可以被模拟为通过弹簧连接的带电球体,这些弹簧保持键长和键角。带电原子相互作用(通过库仑定律)并与溶剂相互作用。罩代表疏水排斥区域,其中疏水效应的强度与罩的表面积大致成正比。罩只在分子的背面延伸,实际上它会一直延伸到分子的周围。所示的模型被称为分子力学势能函数,它被像 Folding@home 这样的程序用来模拟分子如何移动和行为。所示的分子是 丙氨酸 二肽。
作业/练习
[edit | edit source]使用R创建一些表格和绘图。分成2到3个人的小组。尝试与至少另一个你以前没有组成过小组的人一起工作。确保你们小组中的每个人都理解你们执行的所有R代码。让我们从检查一个分类变量开始。
#Generate Table for Categorical Variable
#Remove Objects in workspace and print date
rm(list=ls())
paste ("Today is:", date())
#Create a nominal (categorical) variable with 10,000 observations
#Use the sample() function
temp.a <- sample( LETTERS[1:4], 10000, replace=TRUE, prob=c(0.1, 0.2, 0.65, 0.05) )
#List the values
temp.a
#Get a summary - for nominal variables it gives a count
summary(temp.a)
#Produce a simple table showing the frequency distribution of the values of the variable
table(temp.a)
#Do a summation across all the categories, a total that we would put in the margin
#Note that in order for the margin.table() function to work properly it needs a numeric input
#The table(temp.a) produces four numbers, which are passed to margin.table()
margin.table(table(temp.a))
#Now let's get R to print the frequencies and margins together
addmargins(table(temp.a))
#Simarly, in order to calculate the percentage distribution, we need to pass a numeric argument
prop.table(table(temp.a))
addmargins(prop.table(table(temp.a)))
#The Hmisc library has a function that simply puts all of these together
library(Hmisc)
describe(temp.a)
让我们尝试探索一个连续变量。
#Generate Table for Continuous Variable
#Remove Objects in workspace and print date
rm(list=ls())
paste ("Today is:", date())
#Create a continuous (numerical) variable with 10,000 observations
#Use the rnorm() function to generate 10,000 random number with a mean of 0 and a standard deviation of 1
temp.a <- rnorm(10000, mean = 0, sd = 1)
#List the values
temp.a
#Get a summary - for continuous variables it gives quintiles
summary(temp.a)
#Get descriptive statistics
min(temp.a) #minimum
max(temp.a) #maximum
range(temp.a) #range
median(temp.a) #median
mean(temp.a) #mean
var(temp.a) #variance
sd(temp.a) #standard deviation
# The "describe" function in the "psych" library gives all these with one command
# item name ,item number, nvalid, mean, sd, median, mad (median absolute deviation),
# min, max, skew, kurtosis, se (standard error of the mean)
library(psych)
describe(temp.a)
现在尝试这个简单的绘图。
#Generate plots
#Remove Objects in workspace and print date
rm(list=ls())
paste ("Today is:", date())
#The plot character (pch=) parameter specifies which symbol will be used in the plot
#Need x, y, and pch vectors from 1 to 25
temp.x<-1:25
temp.y<-1:25
temp.p<-1:25
#Set up plot of y on x using default plot character (no pch= specified)
plot(
main="Simple Plot of Y on X",
x=temp.x, xlim=c(0,26), xlab="Independent Variable",
y=temp.y, ylim=c(0,26), ylab="Dependent Variable"
)
你需要将库“calibrate”添加到你的R工作区,以便在以下示例中使用“textxy”命令。使用R控制台下拉菜单中的“包管理器”和“包安装程序”命令。 R编程维基教科书中的包章节 是一个开始的地方。
现在,让我们将第一个绘图命令替换为以下内容。
#Set up plot of y on x specifying a different plot character for each point
plot(
main="Simple Plot of Y on X with Plot Characters",
x=temp.x, xlim=c(0,26), xlab="Independent Variable",
y=temp.y, ylim=c(0,26), ylab="Dependent Variable",
pch=temp.p
)
#Use textxy to label points with value of pch,
#Shift axes slightly so labels don't sit on top of points
temp.xshift <- temp.x-1.25
temp.yshift <- temp.y-0.2
#Use character expansion (cx=)
library(calibrate)
textxy(temp.xshift, temp.yshift, temp.p, cx=.6)
务必打印出该绘图的副本以供参考。
现在,让我们尝试更改颜色。
#Set up plot of y on x specifying different colors for each point
plot(
main="Simple Plot of Y on X with Colored Characters",
x=temp.x, xlim=c(0,26), xlab="Independent Variable",
y=temp.y, ylim=c(0,26), ylab="Dependent Variable",
pch=16,
col=temp.p
)
#Use textxy to label points with value of pch,
#Shift axes slightly so labels don't sit on top of points
temp.xshift <- temp.x-1.25
temp.yshift <- temp.y-.2
#Use character expansion (cx=)
library(calibrate)
textxy(temp.xshift, temp.yshift, temp.p, cx=.6)
然后,让我们更改绘图中点的尺寸
#Set up plot of y on x specifying different sizes for each point
#Use the character expansion (cex=) parameter
#A cex=1 is the default; a cex=2 is twice the default size; and a cex=.5 is half the default size
#So as not to make the points too big, let's
#Transform the temp.p variable from 1-25 to 0.2-5
temp.c = temp.p/5
plot(
main="Simple Plot of Y on X with Sized Characters",
x=temp.x, xlim=c(0,26), xlab="Independent Variable",
y=temp.y, ylim=c(0,26), ylab="Dependent Variable",
pch=16,
col=3,
cex=temp.c
)
#Use textxy to label points with value of pch,
#Shift axes slightly so labels don't sit on top of points
temp.xshift <- temp.x-1.25
temp.yshift <- temp.y-.2
#Use character expansion (cx=)
library(calibrate)
textxy(temp.xshift, temp.yshift, temp.p, cx=.6)
最后,让我们在点之间绘制一条线。
#Set up plot of y on x drawing a line through the points
plot(
main="Simple Plot of Y on X with Sized Characters",
x=temp.x, xlim=c(0,26), xlab="Independent Variable",
y=temp.y, ylim=c(0,26), ylab="Dependent Variable",
pch=15,
col=5,
cex=2
)
#Find the slope and intercept of the line
#Use the linear model (lm()) function and store results into the R object (temp.line)
#The linear model is: Y = a +bX, where a is the intercept and b is the slope
temp.line <- lm(temp.y~temp.x)
temp.line
#Now plot a line with that intercept (a) and slope (b)
abline(temp.line)
更多阅读
[edit | edit source]- Livio, Mario (2003). The Golden Ratio: The Story of PHI, the World's Most Astonishing Number. New York: Broadway. ISBN 978-0767908160.
- Hans Rosling (2006). "Stats that reshape your world-view". Video. TED. Retrieved 15 August 2012.
- Tufte, Edward (2001) [1983]. 量化信息的视觉显示 (第 2 版). 马里兰州哥伦比亚:图形出版社。 ISBN 978-0961392147.
- "Tableau 视觉指南". 白皮书. Tableau 软件. 检索于 2012 年 11 月 19 日.
- ↑ 例如,参见 Douglas Kipperman 和 Melissa McKinstry (2008). "设计经验法则". WriteDesignOnline. 检索于 2012 年 8 月 15 日.
- ↑ Higgins, E. Tory (1987). "自我差异:一个将自我与情感联系起来的理论". 心理评论. 94 (3): 319–340. 检索于 2012 年 8 月 25 日.
{{cite journal}}
: 未知参数|month=
被忽略 (帮助) - ↑ 萨尔瓦多·达利 (1955). "最后的晚餐的圣礼" (PDF). 绘画. 国家艺术馆. 检索于 2012 年 8 月 15 日.
您可以自由
- 分享 — 复制、分发、展示和执行作品(来自此维基的页面)
- 混合 — 改编或制作衍生作品
在以下条件下
- 署名 — 您必须将此作品归功于维基教科书。您不能暗示维基教科书以任何方式认可您或您对本作品的使用。
- 相同方式共享 — 如果您更改、转换或建立在本作品之上,您只能在与本许可证相同或类似的许可证下分发所产生的作品。
- 放弃 — 如果您获得版权持有者的许可,上述任何条件都可以放弃。
- 公有领域 — 如果作品或其任何部分根据适用法律属于公有领域,则该状态不受许可证的任何影响。
- 其他权利 — 许可证不会以任何方式影响以下任何权利
- 您的合理使用权或其他适用的版权例外情况和限制;
- 作者的署名权;
- 他人可能对作品本身或对作品的使用方式拥有的权利,例如公开权或隐私权。
- 通知 — 对于任何重新使用或分发,您必须向其他人明确说明此作品的许可条款。最好的方法是链接到以下网页。