⼀提到赛博朋克(cyberpunk)这个词,很多⼈可能会第⼀时间浮想出上⾯这样的场景。
喜欢看科幻题材的⼀定知道,很多有名的作品就是基于赛博朋克的世界观设定(加餐,作品推荐《银翼杀⼿》,《黑客帝国》,《攻壳机动队》,《⻄部世界》)。⽽如果对⽐百年前,现在的我们在过去看来其实本⾝就已经很赛博朋克了,就像很多故事⾥描述的,⼈们过着⾼科技但低品质的⽣活。
不同于很多反乌托邦故事的世界设定,在看似光鲜亮丽的表象之下,更多的是隐藏在背后的黑暗和不堪。⽽赛博朋克的世界描述的则是,⼈们如何在黑暗中摸索,寻找光明。⽽过去这⼀年我们所经历的和期盼的也正是这样。
承接上⼀期的Python数据可视化的专题 “Python数据科学⾷⽤指南:⽤数据可视化⽅法来理解房价”,那我们这⼀期就来聊聊,如何⽤这种赛博朋克的精神来风格化你分析好的数据,也就是如标题所说的--赛博朋克化你的数据。这将是⼀次在黑暗中寻找光明的旅程。
在理解了赛博朋克是⼀种什么样的感觉后(还不理解的话,可以参考下⾯的配图),如何以“赛博朋克”的样式来可视化你的数据,这⾥会介绍两个⽅法,第⼀种是⾃⼰写代码来实现,第⼆种则是使⽤既有的库。
这次的内容是在使⽤下⾯的python库后的有感⽽发,有兴趣的可以访问原⽹页。
Github: https://github.com/dhaitz/mplcyberpunk
⾼能预警,之后有⼤量代码,只对结果感兴趣的可以只看效果图,或直接跳到⽅法2。这⾥只对部分代码做基本的解释,⼀切靠悟性了哈。
开始我们的cyberpunk前,我们先加载⼀些必要⼯具包,以及准备⼀份数据。这⾥⽤random函数随机模拟了2个学⽣的10次考试成绩,可以看到,⾮常⼤起⼤落〜
有了数据后,我们先试着可视化下数据,这⾥只⽤了默认的plot,效果如下,⾮常中规中矩。
既然我们是要⼀个赛博朋克的世界观,那当然整个世界得是暗黑的,这⾥我们通过图中选中的代码,来对初始的背景和⾊调做⼀个改变。
黑夜已⾄,那事物⾃然也会失去其本来的⾊彩。这⾥我们⾃定义了符合cyberpunk感的⾊调。
就像我们说的,很多时候,正因为在黑暗中,光才变得难能可贵。⽽很多时候,感动我们的也正是那些微⼩的光源。这⾥我们给每个节点和线条加上光晕。
光晕特效的原理其实是,在原有的plot图层上叠加了⼀层完全⼀样,但半透明且更粗的图层。
故事的最后,既然有了光,⾃然也还会有阴影。这⾥我们给初始轴到数据线条之间的区域填充阴影。这样⼀个赛博朋克风格的可视化图就完成了。
上⾯的⽅法1是我们亲⾃⼀个个叠加效果来实现的。如果想省时省⼒的话,可以直接调⽤"mplcyberpunk"这个python库。
⾸先,⽤pip来安装
pip install mplcyberpunk
之后就是在最终出图前加上⼀句调⽤,就能快速的实现⼀键换装了!(之前的⽅法1其实就是⽅法2幕后的故事)
此外,这个库还提供了⼀套配⾊⽅案,就像下⾯的地形图和3D建模⼀样,我们也能快速的变更⾊调。
我们不清楚过去2020这⼀年只是永夜的序章还是黎明前的黑暗,但⼼怀光明,总能找到属于你的光。就像欧洲中世纪⼤瘟疫(黑死病)⼀样,很多时候我们不能只看到灾难本⾝。的确因黑死病死去的⽣命太多,但这⼀历史事件同样对之后的⽂明发展产⽣了重⼤影响。
原本⾮常艰难的社会转型因为黑死病⽽突然变得顺畅,同时也推动了科学的发展和宗家的改⾰。现在的我们同样也是站在了这个历史转折点上,不管未来如何,我们都是在推动着这⼀历史进程的⼈。
说完⼤道理,如果⼤家感兴趣我们的python⾷⽤指南专题,就来个⼀键三连哈(我不会告诉你是因为想玩cyberpunk 2077才出了这期专题的? 〜)
Python系列课程讲师介绍
❖ 龚老师
「课程B+:AI高阶+大数据分析应用强化+多项目实战」主讲
筑波大学(计算机专业)/互联网大手/Research Scientist
擅长方向:大数据分析·AI建模·模型优化