2021.06.20 技術シェア
【技术浅谈】Python数据科学⾷⽤指南:赛博朋克化你的数据

图片


 

为何说2020这⼀年很赛博朋克?


⼀提到赛博朋克(cyberpunk)这个词,很多⼈可能会第⼀时间浮想出上⾯这样的场景。


喜欢看科幻题材的⼀定知道,很多有名的作品就是基于赛博朋克的世界观设定(加餐,作品推荐《银翼杀⼿》,《黑客帝国》,《攻壳机动队》,《⻄部世界》)。⽽如果对⽐百年前,现在的我们在过去看来其实本⾝就已经很赛博朋克了,就像很多故事⾥描述的,⼈们过着⾼科技但低品质的⽣活。


不同于很多反乌托邦故事的世界设定,在看似光鲜亮丽的表象之下,更多的是隐藏在背后的黑暗和不堪。⽽赛博朋克的世界描述的则是,⼈们如何在黑暗中摸索,寻找光明。⽽过去这⼀年我们所经历的和期盼的也正是这样。


承接上⼀期的Python数据可视化的专题 Python数据科学⾷⽤指南:⽤数据可视化⽅法来理解房价,那我们这⼀期就来聊聊,如何⽤这种赛博朋克的精神来风格化你分析好的数据,也就是如标题所说的--赛博朋克化你的数据。这将是⼀次在黑暗中寻找光明的旅程。


图片

 

如何“cyberpunk”你的数据


 


在理解了赛博朋克是⼀种什么样的感觉后(还不理解的话,可以参考下⾯的配图),如何以“赛博朋克”的样式来可视化你的数据,这⾥会介绍两个⽅法,第⼀种是⾃⼰写代码来实现,第⼆种则是使⽤既有的库。


这次的内容是在使⽤下⾯的python库后的有感⽽发,有兴趣的可以访问原⽹页。


Github: https://github.com/dhaitz/mplcyberpunk


图片


 

① ⼿动实现赛博朋克化


⾼能预警,之后有⼤量代码,只对结果感兴趣的可以只看效果图,或直接跳到⽅法2。这⾥只对部分代码做基本的解释,⼀切靠悟性了哈。


 

0. 准备⼯作


开始我们的cyberpunk前,我们先加载⼀些必要⼯具包,以及准备⼀份数据。这⾥⽤random函数随机模拟了2个学⽣的10次考试成绩,可以看到,⾮常⼤起⼤落〜


图片


有了数据后,我们先试着可视化下数据,这⾥只⽤了默认的plot,效果如下,⾮常中规中矩。


 


图片


 

1. 让黑夜降临


既然我们是要⼀个赛博朋克的世界观,那当然整个世界得是暗黑的,这⾥我们通过图中选中的代码,来对初始的背景和⾊调做⼀个改变。


图片


黑夜已⾄,那事物⾃然也会失去其本来的⾊彩。这⾥我们⾃定义了符合cyberpunk感的⾊调。


 


图片


 

2. 要有光


就像我们说的,很多时候,正因为在黑暗中,光才变得难能可贵。⽽很多时候,感动我们的也正是那些微⼩的光源。这⾥我们给每个节点和线条加上光晕。


图片


光晕特效的原理其实是,在原有的plot图层上叠加了⼀层完全⼀样,但半透明且更粗的图层。


 

3. 来点特效


故事的最后,既然有了光,⾃然也还会有阴影。这⾥我们给初始轴到数据线条之间的区域填充阴影。这样⼀个赛博朋克风格的可视化图就完成了。


图片


 

② ⼀键“赛博朋克”


上⾯的⽅法1是我们亲⾃⼀个个叠加效果来实现的。如果想省时省⼒的话,可以直接调⽤"mplcyberpunk"这个python库。


⾸先,⽤pip来安装


pip install mplcyberpunk


之后就是在最终出图前加上⼀句调⽤,就能快速的实现⼀键换装了!(之前的⽅法1其实就是⽅法2幕后的故事)


图片


 

从此实现,⼀键换装“cyberpunk”


此外,这个库还提供了⼀套配⾊⽅案,就像下⾯的地形图和3D建模⼀样,我们也能快速的变更⾊调。


 


图片


 

展望未来


我们不清楚过去2020这⼀年只是永夜的序章还是黎明前的黑暗,但⼼怀光明,总能找到属于你的光。就像欧洲中世纪⼤瘟疫(黑死病)⼀样,很多时候我们不能只看到灾难本⾝。的确因黑死病死去的⽣命太多,但这⼀历史事件同样对之后的⽂明发展产⽣了重⼤影响。


原本⾮常艰难的社会转型因为黑死病⽽突然变得顺畅,同时也推动了科学的发展和宗家的改⾰。现在的我们同样也是站在了这个历史转折点上,不管未来如何,我们都是在推动着这⼀历史进程的⼈。


说完⼤道理,如果⼤家感兴趣我们的python⾷⽤指南专题,就来个⼀键三连哈(我不会告诉你是因为想玩cyberpunk 2077才出了这期专题的? 〜)


 


图片


 


Python系列课程讲师介绍


❖ 龚老师


「课程B+:AI高阶+大数据分析应用强化+多项目实战」主讲


筑波大学(计算机专业)/互联网大手/Research Scientist


擅长方向:大数据分析·AI建模·模型优化


 


图片