資料科學導論/像視覺藝術家一樣思考

作為視覺藝術家思考,五個設計元素——和諧、節奏、流動、平衡和焦點——是必不可少的考量因素。資料科學家必須富有創造力地將這些元素以合適的比例組合起來,才能將關鍵結論傳達給受眾。
有十多個"經驗法則"來指導資料科學家以視覺藝術家的思維方式思考。[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 日.
您可以自由
- 分享 — 複製、分發、展示和執行作品(來自此維基的頁面)
- 混合 — 改編或製作衍生作品
在以下條件下
- 署名 — 您必須將此作品歸功於華夏公益教科書。您不能暗示華夏公益教科書以任何方式認可您或您對本作品的使用。
- 相同方式共享 — 如果您更改、轉換或建立在本作品之上,您只能在與本許可證相同或類似的許可證下分發所產生的作品。
- 放棄 — 如果您獲得版權持有者的許可,上述任何條件都可以放棄。
- 公有領域 — 如果作品或其任何部分根據適用法律屬於公有領域,則該狀態不受許可證的任何影響。
- 其他權利 — 許可證不會以任何方式影響以下任何權利
- 您的合理使用權或其他適用的版權例外情況和限制;
- 作者的署名權;
- 他人可能對作品本身或對作品的使用方式擁有的權利,例如公開權或隱私權。
- 通知 — 對於任何重新使用或分發,您必須向其他人明確說明此作品的許可條款。最好的方法是連結到以下網頁。
