文/張可天
使用軟件:Rhinoceros, Grasshopper, Illustrator
編者按:可可這次又帶來神級教程,可以說完美的解決了一大類圖解的繪制思路問題。我經(jīng)常被問到類似文中的數(shù)據(jù)可視化圖解“是怎么畫的”這類問題,無奈對于數(shù)據(jù)處理方面,我知之甚少。相信今天的這一篇文章能夠為大家解惑。
張可天
張可天是2015年畢業(yè)于天津大學(xué)的建筑學(xué)碩士。目前就職于天津市設(shè)計院。他專長建筑方案設(shè)計及表現(xiàn),基本功扎實,而且他也一直樂于分享他總結(jié)到的技巧,曾經(jīng)在人人網(wǎng)上接連發(fā)表過多篇圖文教程:《可可這樣畫》系列。同時他也是專筑網(wǎng)《SketchUp極速出圖八講》的主講人。
這是一篇我在知乎的回答(點擊這里查看張可天的知乎答案),題主提出的參考原圖如下,希望能夠得知這張圖的畫法。
我嘗試用Rhino+Grasshopper畫圖并導(dǎo)入AI修飾,步驟如下:
1.取得數(shù)據(jù)
樣例中的圖應(yīng)該是有數(shù)據(jù)來源的,可能是作者調(diào)研或文獻(xiàn)摘錄的。我并沒有這些數(shù)據(jù),所以我把原圖中的數(shù)據(jù)大概加估計地逆向回來。數(shù)據(jù)的存在形式有很多種,我使用了比較常見的一種,將數(shù)據(jù)放在一張EXCEL表格的兩個SHEET中,如下圖。
Sheet1是一張映射關(guān)系圖,是樣例圖中從右上方到左下方的那些個映射曲線數(shù)據(jù)。excel中,橫軸是“人口分布(Population Distribution)”中的各類人,縱軸是“元素時間表(Element Timeline)”中的那些“元素(Element)”,“0”代表著沒有映射關(guān)系,“1”代表著有映射關(guān)系。
Sheet2是一張時間數(shù)據(jù)圖,是樣例圖中右下的那張大表格的數(shù)據(jù)。excel中,橫軸是樣例圖的“時間點”,縱軸是“元素(Element)”,其中的數(shù)據(jù)根據(jù)原圖中的意思,應(yīng)該是某個“元素(Element)”在“工作日/休息日(Workday/Weekend)”時,特定的“時間點”上所接待或容納的人數(shù)。我并沒有看出來樣例圖中該數(shù)據(jù)的單位,所以我臆測了一下。我以垂直方向一格代表“10人”為單位,讀取了這些數(shù)據(jù),得到上表。
2.導(dǎo)入Rhino
我使用Grasshopper中的Bumble Bee將Excel數(shù)據(jù)導(dǎo)進(jìn)來,這個插件是我能夠找到的導(dǎo)入Excel表格效率最高的一個插件了,并且好處是他可以導(dǎo)入一個文件中的不同的SHEET,非常方便。下圖中的Panel中,你可以看到,Excel數(shù)據(jù)被完整的導(dǎo)入進(jìn)來了~
3.建立第一部分——映射曲線
先不要急著建立曲線,我們需要先知道這些曲線畫在哪里。我先在Rhino的頂視圖(Top View)中,模擬樣例圖中的位置,建立了各個曲線的起點和終點位置,并將它們拾取到GH中。務(wù)必注意拾取的順序,防止出錯。如下圖:
之后我用了一些數(shù)據(jù)變換來讓映射數(shù)據(jù)轉(zhuǎn)換為點和點的對應(yīng)數(shù)據(jù),并把它們用Besier Span運算器連接起來。特別需要注意的是,使用大小相同的X向量作為Besier Span運算器中各映射點間的連接線的切向向量容易造成曲線區(qū)分度太低,所以使用了下圖中橘色虛線部分的做法,按照連接線兩側(cè)映射點的高低位置不同,賦予不同的X向量大小,增加了曲線的區(qū)分度。(我發(fā)現(xiàn)原圖應(yīng)該是手動繪制的,即使按照我這樣區(qū)分依然很難辨識曲線關(guān)系。。。水平有限請諒解)
4.建立第二部分——時間表
下面我處理了時間表數(shù)據(jù),我首先將下圖中橘色虛線框中的點沿X軸復(fù)制,得到了每行24個用于對應(yīng)時間數(shù)據(jù)的點。然后我把Excel導(dǎo)入的數(shù)據(jù)做了一系列的數(shù)據(jù)變換先將數(shù)據(jù)分好組,然后將他們的值依次賦給上述相應(yīng)位置上的點的Y坐標(biāo)值,這些點就有高低變化了。需要特別注意的,我反復(fù)觀察了樣例圖,發(fā)現(xiàn)原圖為了讓時間表中的曲線看起來不會太細(xì),時間表數(shù)據(jù)中沒有“0”這么小的數(shù)據(jù)(防止時間表中的線過細(xì)),因此我將最小的數(shù)據(jù)控制在0.5。這些點的結(jié)果如下圖:
接下來我把他們連了起來,我嘗試了幾種連接方法,最后選擇Blend Curve運算器,這樣繪出的曲線,數(shù)據(jù)比較準(zhǔn)確,圖形連接也比較平滑。如下圖:
5.建立第三部分——元素工作日/休息日圖例
這一部分相對容易了,點的位置我已經(jīng)畫好了,只需要用合適的運算器將他們分好組連接起來就可以了~~
6.烘焙曲線并導(dǎo)出到AI中
把曲線分好組烘焙出來,我還順手畫上了時間表的網(wǎng)格,省著到AI里畫了~
我是在rhino里分別導(dǎo)出成ai文件,然后到ai里粘貼到一個文件的~~就醬~
我先把周圍這些零碎東西畫上了,一個是可以把構(gòu)圖確定下來,二一個可以把畫好的圖例元素當(dāng)做圖形樣式直接應(yīng)用到其他曲線上,提高效率。如下圖:
剩下的就是慢慢畫,調(diào)整線型、填充、透明度等等步驟了。良好的圖層、組、圖形樣式、色板的設(shè)置會幫你提高不少繪圖效率的~最后,我調(diào)整了一下構(gòu)圖以及左下部分曲線的構(gòu)型,讓他們不會過粗或者過細(xì)。
人物圖標(biāo)懶得搞了,最終效果就醬:
跟原圖比還是有很多不足的,需要慢慢調(diào)整修正~~希望能幫到大家。
源文件貼上來,http://pan.baidu.com/share/link?shareid=3692111295&uk=708231111
密碼:vsts
張可天