来来来!学matplotlib之3D图

最近一直在忙大创的事情,很久都没有写文章了,抱歉哈!今天我们来聊聊matplotlib中的3D图。既然3D图都摆上桌面了,那么就意味着其它类型的图(比如雷达图、热力图等等)我就不会在matplotlib这个系列介绍了,我打算把它们放到seaborn和pyecharts系列来介绍。因为都是可视化专题,我不可能把所有类型的图都在每一个单元介绍一遍,这样是没有意义的。那好,言归正传,接下来和我一起来学习3D图吧。

散点图

每介绍一个专题,我都会从最简单的着手,我个人认为在3D图中,散点图是最简单的,下面给出代码示例和结果。

《来来来!学matplotlib之3D图》

代码很简单,我就不做过多的介绍了,只给大家一个温馨提示,如果想要放大或旋转图片,可以将%matplotlib inline改为%matplotlib notebook。

折线图

下面利用折线图来画一个弹簧

《来来来!学matplotlib之3D图》

绘制弹簧最核心的思路就是利用了公式

《来来来!学matplotlib之3D图》

曲面图

在3D绘图中,曲面图可以说是一种非常常用的图片类型,下面来看一个简单的例子。

《来来来!学matplotlib之3D图》

可以看到,曲面其实就是由这两条曲线围成的一个区域。

下面和大家一起来画一个球。

《来来来!学matplotlib之3D图》

采用笛卡尔坐标来绘制球体是比较困难的,在这里我们采用的是球坐标,用到的最关键的数学公式是

《来来来!学matplotlib之3D图》

至于公式是怎样推出来的,这个我想难不倒聪明的蛇友,实在不明白的话就上网查找吧,在这里我就不做过多的解释了。还有一个问题是,不知道大家明不明白np.outer的用法?如果不明白就看看下面的例子吧。

《来来来!学matplotlib之3D图》

线框图

线框图可以说是曲面图的一个简化版,我们还是采用球体的数据来绘制线框图。

《来来来!学matplotlib之3D图》

柱形图

柱形图的参数和上面两种图的参数不一样,它除了需要x,y,z的坐标之外,还需要我们提供dx,dy,dz参数,简单地说就是长宽高。

《来来来!学matplotlib之3D图》

体素图

其实我也不太清楚这种图的名称,暂且就叫做体素图吧。

体素图相对来说还是比较难以理解的,先给大家看一个简单的例子吧。

《来来来!学matplotlib之3D图》

voxels的参数必须是三维的数组,True表示有体素,False表示没有。数组中的一维部分的元素个数对应的是层数,二维部分的元素个数对应沿着y轴方向的排数,三维部分的元素个数对应沿着x轴方向的排数。

有了上面的知识之后,我们就可以来骚一波了。一时兴起,我就画了个长城。

《来来来!学matplotlib之3D图》

我知道画得不像,大家就权当看着玩好了。

好吧,今天就先跟大家聊到这,下期我们不见不散!

《来来来!学matplotlib之3D图》 python小白联盟

    原文作者:雨路浅歌
    原文地址: https://www.jianshu.com/p/748aed601b6c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞