数智资源网
首页 首页 云计算 查看内容

赛博朋克这么火,如果与Python结合,能有多酷?

木马童年 2020-12-26 18:50 22 0

公众号后台回复“图书“,了解更多号主新书内容来源:法纳斯特《赛博朋克2077》,最近一款非常火的单机游戏~游戏的背景设定在了2077年,一个科技高度发达但却混乱无序的“赛博朋克”都市当中。在这个世界里,虽然科 ...

赛博朋克这么火,如果与Python结合,能有多酷?

公众号后台回复“图书“,了解更多号主新书内容

作者:小F

来源:法纳斯特

《赛博朋克2077》,最近一款非常火的单机游戏~

游戏的背景设定在了2077年,一个科技高度发达但却混乱无序的“赛博朋克”都市当中。

在这个世界里,虽然科技高度发展,但是人类的生活水平却极度低下,或者说穷人的生活水平极度低下。

而且,除了极少部分的资本富人,剩下的全是穷人。

所以,这就是一个极端的世界,包含着非常多的元素。在视觉上,繁华的立体城市,到处是霓虹灯,人造光是所有的光源,甚至没有阳光。

对应的,在贫民窟,就是黑暗、潮湿。

赛博朋克这么火,如果与Python结合,能有多酷?

虚拟和现实界限模糊,人工智能和人造人傻傻分不清楚,穷人和富人极度分化,到处充斥着恐怖主义。

总之就是一个绝对的反乌托邦世界,如果你感兴趣可以去深入了解一下,小F就点到为止咯!

这期主要是给大家介绍一款“赛博朋克”风格的Python库,「mplcyberpunk」

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

首先通过pip安装。

#安装

pipinstallmplcyberpunk

由于作者没有编写使用文档,而且只给了一部分的示例代码...

小F研究起来,是真的难搞啊!

先来看第一个示例。

importmatplotlib.pyplotasplt

importmplcyberpunk

#添加样式

plt.style.use("cyberpunk")

plt.plot([1,3,9,5,2,1,1],marker='o')

plt.plot([4,5,5,7,9,8,6],marker='o')

#设置线条发光+面积图

mplcyberpunk.add_glow_effects()

plt.show()

得到一个线条发光的面积图。

赛博朋克这么火,如果与Python结合,能有多酷?

确实很符合赛博朋克的霓虹灯风格,人造光源。

通过查看库的源码文件core.py,发现该库的两个主要功能。

赛博朋克这么火,如果与Python结合,能有多酷?

即make_lines_glow(线条发光)和add_underglow(线条面积图)。

下面我们将每个方法都用一次。

importnumpyasnp

importmplcyberpunk

importmatplotlib.pyplotasplt

plt.style.use("cyberpunk")

#数据

x=np.arange(-7,7,0.1)

y1=np.sin(x)

y2=np.sin(x)+x

y3=np.sin(x)*x

y4=np.sin(x)/x

plt.plot(x,y1)

plt.plot(x,y2)

plt.plot(x,y3)

plt.plot(x,y4)

#线条发光

mplcyberpunk.make_lines_glow()

#面积图

mplcyberpunk.add_underglow()

#保存图片

plt.savefig("defalut.png")

第一个是默认格式,第二个是添加线条发光,第三个是线条发光+面积图。

赛博朋克这么火,如果与Python结合,能有多酷?
赛博朋克这么火,如果与Python结合,能有多酷?
赛博朋克这么火,如果与Python结合,能有多酷?

和作者给的示例图,差了标题和图例,小伙伴们可以自行添加~

此外还可以自定义一些其他类型的颜色。

默认colormap是cool。

importmatplotlib.pyplotasplt

frommatplotlibimportcm

importmplcyberpunk

importnumpyasnp

#time

t=np.arange(0,6.4,0.1)

#frequency

f=1

amplitudes=np.arange(-10,11,1)

#amplitude

A=[x*np.cos(f*t)forxinamplitudes]

#设置颜色样式,cool、spring、winter、tab20、coolwarm

colormap_sect=np.linspace(0,1,len(amplitudes))

colors=[cm.coolwarm(x)forxincolormap_sect]

plt.rcParams['figure.figsize']=[6,4]

plt.style.use("cyberpunk")

plt.xlim(right=6.3)

foriinrange(21):

plt.plot(t,A[i],color=colors[i])

mplcyberpunk.make_lines_glow()

#标题名,cool、spring、winter、tab20、coolwarm

plt.title("Colormap:'coolwarm'")

plt.savefig("colormap.png")

得到5种配色方案的图表。

赛博朋克这么火,如果与Python结合,能有多酷?
赛博朋克这么火,如果与Python结合,能有多酷?
赛博朋克这么火,如果与Python结合,能有多酷?
赛博朋克这么火,如果与Python结合,能有多酷?
赛博朋克这么火,如果与Python结合,能有多酷?

看起来,都很炫!

最后还可以生成“赛博朋克”风格的地图。

使用到的是ridge_map的山脊地图。

GitHub:https://github.com/ColCarroll/ridge_map

#安装

pipinstallridge_map

#安装库的依赖

pipinstallscikit-image==0.14.2

这里需要注意,安装scikit-image时需指定0.14.2版本,否则会报错。

由于ridge_map这个库内容比较多,就不展开说了。

importmatplotlib.font_managerasfm

importmatplotlib.pyplotasplt

fromridge_mapimportRidgeMap

importmplcyberpunk

#赛博朋克样式

plt.style.use("cyberpunk")

#中文显示

plt.rcParams['font.sans-serif']=['SimHei']#Windows

plt.rcParams['font.sans-serif']=['HiraginoSansGB']#Mac

plt.rcParams['axes.unicode_minus']=False

#字体

font_prop=fm.FontProperties(fname="方正兰亭刊黑.ttf")

#获取数据,此处需特殊技巧才能成功

rm=RidgeMap(bbox=(-156.250305,18.890695,154.714966,20.275080),font=font_prop)

#设置线条数,朝向,以及其他属性

values=rm.get_elevation_data(num_lines=200,viewpoint='north')

values=rm.preprocess(values=values,

water_ntile=10,

vertical_ratio=240)

#设置标题,线条颜色,背景颜色等

rm.plot_map(values,label="夏威夷",kind='gradient',line_color=plt.get_cmap('spring'),background_color='#212946')

plt.savefig('夏威夷.png')

得到夏威夷岛的山脊地图,朋克风格满满!

赛博朋克这么火,如果与Python结合,能有多酷?

作者提供的两个图,世界地图和欧洲地图,数据获取时间太久,所以小F选择放弃~

好像是可以使用heightmaps格式的图片直接实现,感兴趣的小伙伴,可以自己试试啦!

赛博朋克这么火,如果与Python结合,能有多酷?
赛博朋克这么火,如果与Python结合,能有多酷?

小F就来实验一个小一点的区域,台湾省。

importmatplotlib.font_managerasfm

importmatplotlib.pyplotasplt

fromridge_mapimportRidgeMap

importmplcyberpunk

#赛博朋克样式

plt.style.use("cyberpunk")

#中文显示

plt.rcParams['font.sans-serif']=['SimHei']#Windows

plt.rcParams['font.sans-serif']=['HiraginoSansGB']#Mac

plt.rcParams['axes.unicode_minus']=False

#字体

font_prop=fm.FontProperties(fname="方正兰亭刊黑.ttf")

#获取数据,此处需特殊技巧才能成功

rm=RidgeMap(bbox=(122.014,25.344,120.036,21.902),font=font_prop)

#设置线条数,朝向,以及其他属性

values=rm.get_elevation_data(num_lines=200,viewpoint='north')

values=rm.preprocess(values=values,

water_ntile=10,

vertical_ratio=240)

#设置标题,线条颜色,背景颜色等

rm.plot_map(values,label="台湾省",kind='gradient',line_color=plt.get_cmap('spring'),background_color='#212946')

plt.savefig('台湾省.png')

其中经纬度坐标,可通过腾讯位置服务获取。

赛博朋克这么火,如果与Python结合,能有多酷?

得到台湾省的山脊线图。

赛博朋克这么火,如果与Python结合,能有多酷?

不愧是高山民族,除了沿海平一点,其它都是山...

好了,本期分享到此就结束了,对于“赛博朋克”风格的柱状图、饼图等等,就让大家自己去探索吧。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69982434/viewspace-2745190/,如需转载,请注明出处,否则将追究法律责任。

公众号 人工智能 数据获取
0
为您推荐
docker解析及轻量级PAAS平台演练,Docker精华视频教程下载

docker解析及轻量级PAAS平台演练,Docker精

课程名称Docker是一种在Linux容器里运行应用的开源工具,一种轻量级的虚拟机。除了运…...

Openstack快速部署及入门视频教程,Openstack入门视频下载

Openstack快速部署及入门视频教程,Opensta

课程名称OpenStack快速部署及入门视频教程 Openstack入门视频下载课程简介 这套教程由…...

超全微软Hyper-V桌面虚拟化教程下载,7套Hyper-V课程精华总结课程 桌面虚拟化架构技术

超全微软Hyper-V桌面虚拟化教程下载,7套Hy

课程名称超全微软Hyper-V桌面虚拟化教程 7套Hyper-V课程精华总结课程 桌面虚拟化架构…...

云计算系统架构文档,资源文件下载

云计算系统架构文档,资源文件下载

资源名称云计算系统架构文档,资源文件下载文档目录云应用集成的N种成功模式(Richard)…...

SpringBoot与Kubernetes云原生微服务案例实战视频教程下载

SpringBoot与Kubernetes云原生微服务案例实

课程目录:01、课程介绍.mp402、背景说明.mp403、课程目标和主要内容.mp404、课程案例…...

最新Docker零基础系统学习与DevOps理念,资源教程下载

最新Docker零基础系统学习与DevOps理念,资

课程名称最新Docker零基础系统学习与DevOps理念,资源教程下载 学习目标 系统学习Dock…...

华为桌面虚拟化:Fusion Access(V100R003)入门基础视频教程下载

华为桌面虚拟化:Fusion Access(V100R003

课程目录: 1、桌面虚拟化简介、华为Fusion Access简介.mp4 2、实验环境简介、Fusion …...

系统化学习Docker容器技术,视频教程下载

系统化学习Docker容器技术,视频教程下载

课程介绍:Docker代表的容器技术是近两年的大热技术,和人工智能、区块链等热点不同,…...

KVM虚拟化原理解析与实战演练,资源教程下载

KVM虚拟化原理解析与实战演练,资源教程下

课程名称KVM虚拟化原理解析与实战演练,资源教程下载课程目录课时1、免费试听:KVM Ov…...

云计算视频实战经典 Hadoop云计算 最新全套视频教程下载

云计算视频实战经典 Hadoop云计算 最新全套

课程名称云计算视频实战经典 Hadoop云计算 最新全套视频教程下载…...