首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用matplotlib制作3d图表

大家好,欢迎收看思路实验室出品的Python入门教程,我是室长。

在之前的文章中我们以动画的形式为二维的图表添加了时间维度,扩展了图表的表现力。但通常对于三个轴的数据来说还是做3d图表更为直观,更为一目了然。

将数据做成3d图表,说简单也简单,说复杂也复杂。从数据角度来说只是添加了一个维度的数据,而从图片的角度来说什么样的视角、什么样的坐标轴排列顺序都是问题。面对这种问题,在mpl_toolkits.mplot3d子模块下的Axes3D类为3d坐标的数据绘制提供了方法。不过现在的matplotlib优化得更为紧凑,我们并不必须去导入Axes3D类,只需要填写一个小小的参数。

首先我们还是来输入套路代码,每次我们使用matplotlib都需要打这些代码,大家自己用时不妨编写一个函数来重复利用:

这里有细心的同学已经发现区别了。在add_axes方法中我们多给一个叫projection的参数传入了'3d'的值。这个小小的操作就让我们开启了matplotlib中三次元的大门。从此,这个画布上的轴域就变成三维的了。

轴域变成了三维的,自然就能接受三维的数据,我们再准备一些随机数:

这些都是随机生成的点,我们用来生成散点图非常合适。生成方法还是我们之前熟悉的方法,只不过多了一个维度的数据:

这样一个3d的图表就做好了,是不是特别的简单?当然其他的诸多参数大家可以自行尝试设置。

除了散点图之外,曲线图也可以做成3d形式。我们给曲线图换一个好看一些的数据:

柱状图也可以设置为3d格式,但这种3d更像是多层2d数据叠到一期。实际上3d柱状图也是这样生成的:

也就是说对于每一层数据我们都要调用一下bar方法。同时需要在方法中设置一下zdir参数为y,因为我们是从二维的柱状图开始绘制的,此时竖直方向的轴为y轴。但在3d图表中,默认竖直方向的轴为z轴,这里不进行设置的话出现的柱子就都是躺平的。

不过到目前为止我们并没有对3d图表的视角进行设置,想要设置视角需要使用到的是view_init方法。view_init方法有两个参数,也就是视角的两个角度——azim和elev。

我们给这个曲线图调整一下角度:

3d图表的视角发生了变化。我们甚至可以将不同的角度存为不同的图片,再用imageio模块合成为gif动画。imageio模块安装导入简单,这里不再赘述:

这一期我们学习了如何使用matplotlib制作3d图表,是不是非常简单?其实对2d图表的学习是打基础的过程,基础扎实了,再进行进一步的升级就会更加轻松愉快。如果这篇文章对你有所帮助,希望能帮室长点个赞和在看,你的鼓励是室长进步的动力!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221009A070ID00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券