原文来自韩世麟博客,表示感谢,感谢作者可可
使用软件:Rhinoceros, Grasshopper, Illustrator
编者按:可可这次又带来神级教程,可以说完美的解决了一大类图解的绘制思路问题。我经常被问到类似文中的数据可视化图解“是怎么画的”这类问题,无奈对于数据处理方面,我知之甚少。相信今天的这一篇文章能够为大家解惑。
张可天
张可天是2015年毕业于天津大学的建筑学硕士。目前就职于天津市设计院。他专长建筑方案设计及表现,基本功扎实,而且他也一直乐于分享他总结到的技巧,曾经在人人网上接连发表过多篇图文教程:《可可这样画》系列。同时他也是专筑网《SketchUp极速出图八讲》的主讲人。
我尝试用Rhino+Grasshopper画图并导入AI修饰,步骤如下:
1.取得数据
样例中的图应该是有数据来源的,可能是作者调研或文献摘录的。我并没有这些数据,所以我把原图中的数据大概加估计地逆向回来。数据的存在形式有很多种,我使用了比较常见的一种,将数据放在一张EXCEL表格的两个SHEET中,如下图。
Sheet1是一张映射关系图,是样例图中从右上方到左下方的那些个映射曲线数据。excel中,横轴是“人口分布(Population Distribution)”中的各类人,纵轴是“元素时间表(Element Timeline)”中的那些“元素(Element)”,“0”代表着没有映射关系,“1”代表著有映射关系。
Sheet1是一张映射关系图,是样例图中从右上方到左下方的那些个映射曲线数据。excel中,横轴是“人口分布(Population Distribution)”中的各类人,纵轴是“元素时间表(Element Timeline)”中的那些“元素(Element)”,“0”代表着没有映射关系,“1”代表著有映射关系。
Sheet2是一张时间数据图,是样例图中右下的那张大表格的数据。excel中,横轴是样例图的“时间点”,纵轴是“元素(Element)”,其中的数据根据原图中的意思,应该是某个“元素(Element)”在“工作日/休息日(Workday/Weekend)”时,特定的“时间点”上所接待或容纳的人数。我并没有看出来样例图中该数据的单位,所以我臆测了一下。我以垂直方向一格代表“10人”为单位,读取了这些数据,得到上表。
2.导入Rhino
我使用Grasshopper中的Bumble Bee将Excel数据导进来,这个插件是我能够找到的导入Excel表格效率最高的一个插件了,并且好处是他可以导入一个文件中的不同的SHEET,非常方便。下图中的Panel中,你可以看到,Excel数据被完整的导入进来了~
我使用Grasshopper中的Bumble Bee将Excel数据导进来,这个插件是我能够找到的导入Excel表格效率最高的一个插件了,并且好处是他可以导入一个文件中的不同的SHEET,非常方便。下图中的Panel中,你可以看到,Excel数据被完整的导入进来了~
3.建立第一部分——映射曲线
先不要急着建立曲线,我们需要先知道这些曲线画在哪里。我先在Rhino的顶视图(Top View)中,模拟样例图中的位置,建立了各个曲线的起点和终点位置,并将它们拾取到GH中。务必注意拾取的顺序,防止出错。如下图:
之后我用了一些数据变换来让映射数据转换为点和点的对应数据,并把它们用Besier Span运算器连接起来。特别需要注意的是,使用大小相同的X向量作为Besier Span运算器中各映射点间的连接线的切向向量容易造成曲线区分度太低,所以使用了下图中橘色虚线部分的做法,按照连接线两侧映射点的高低位置不同,赋予不同的X向量大小,增加了曲线的区分度。(我发现原图应该是手动绘制的,即使按照我这样区分依然很难辨识曲线关系。。。水平有限请谅解)
4.建立第二部分——时间表
下面我处理了时间表数据,我首先将下图中橘色虚线框中的点沿X轴复制,得到了每行24个用于对应时间数据的点。然后我把Excel导入的数据做了一系列的数据变换先将数据分好组,然后将他们的值依次赋给上述相应位置上的点的Y坐标值,这些点就有高低变化了。需要特别注意的,我反复观察了样例图,发现原图为了让时间表中的曲线看起来不会太细,时间表数据中没有“0”这么小的数据(防止时间表中的线过细),因此我将最小的数据控制在0.5。这些点的结果如下图:
5.建立第三部分——元素工作日/休息日图例
6.烘焙曲线并导出到AI中
源文件贴上来,点击这里下载 密码:vsts
张可天
2015.12.08
2015.12.08