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