美文网首页
三维度图像的绘制

三维度图像的绘制

作者: taon | 来源:发表于2020-04-26 22:24 被阅读0次

这一小节,我们来绘制三维图像。二维图像可以表示两个变量在空间中的分布,三维图像可以表示三个变量在空间中的分布。通过对三维数据进行可视化,使得我们可以更加直观的理解数据。

在中学的时候,我们接触的函数基本都是一元二次函数,如
y = x^2 + 5
它的几何表达如下图所示:

一元二次方程.png

到了大学的时候,我们接触到函数就变得更加复杂了,如二元二次函数,甚至有更加复杂(维度更高)的函数。
z = x^2 + y^2 + 5
上述函数表达式的几何图如下图所示:

二元二次函数.png

三维图像的绘制过程:
别的不多说了,先绘制一个三维曲面,直接上代码。

import numpy as np
import matplotlib.pyplot as plt
#绘制三维图形必须导入的工具包
from mpl_toolkits.mplot3d import Axes3D

#创建三维数据
xx = np.arange(-5,5,0.1)
yy = np.arange(-5,5,0.1)
#使用np.meshgrid()方法,将X,Y转化二维平面数据。此处可以使用print(X)观察X,Y的真实面貌。
X,Y = np.meshgrid(xx,yy)
Z = np.sin(X) + np.cos(Y)


#开始绘制三维图形
#创建三维图形的窗口(布局)
fig = plt.figure(figsize = (5,5))
ax1 = Axes3D(fig)#还可以使用plt.axes(projection = '3d),两者的效果是一样的。

#使用plot_surface()绘制三维曲面图
ax1.plot_surface(X,Y,Z,cmap = 'rainbow')
#绘制等高线图
#参数说明:zdir:投影的方向,可以指定为x,y或z;
#offset:等高线图所在的位置,这个例子中,我们向z轴投影,所以offset指定为z方向的最小值。
ax1.contour(X,Y,Z,zdir = 'z',offset = -2,cmap = 'rainbow')

如下图所示,底部是该函数的等高线图。

plot_surface.png
案例演示
以iris数据集为例,来展示各个样本在空间中的分布。由于该数据集有四个变量,我们选择其中的三个来进行展示。

iris数据集链接:
链接:https://pan.baidu.com/s/1h9TpTuz_7iBPk7WmpZdn8w
提取码:pr9p

#读取数据集
columns = ['petal length','petal width','calyx length','calyx width','category']
iris = pd.read_csv('D:\\Py_dataset\\iris.data',names = columns,sep = ',')
#分离特征和标签
Y = iris['category'].values
X = iris.drop('category',axis = 1).values
#绘制样本在空间中的分布
fig = plt.figure(figsize = (6,6))
ax1 = Axes3D(fig)

for lab,color,category in zip(['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'],['red','green','blue'],['Iris-setosa', 'Iris-versicolor', 'Iris-virginica']):
#三维散点图使用的是scatter3D
    ax1.scatter3D(X[Y == lab,0],#第一个特征
               X[Y == lab,1],#第二个特征
               X[Y == lab,2],#第三个特征
               label = category,#样本的标签
               c = color)
ax1.set_xlabel('petal length')
ax1.set_ylabel('petal width')
ax1.set_zlabel('calyx length')
ax1.legend(loc = 'lower right')
iris样本的空间分布.png

三维图形绘制小结:
1.数据可视化贯穿于数据分析过程的始终,便于我们更加直观的理解数据。
2.绘图的过程是一个不断积累的过程,现实世界中的图形非常繁多,总会有我们不认识的。对于以前没有碰到过图形,我们可以直接在网上搜索,基本上都有模板可以参考。

相关文章

  • 三维度图像的绘制

    这一小节,我们来绘制三维图像。二维图像可以表示两个变量在空间中的分布,三维图像可以表示三个变量在空间中的分布。通过...

  • MATLAB绘制三维图像

    绘制三维图像

  • Android 图像绘制之 Drawable

    Android 图像绘制系列文章Android图像绘制之BitmapAndroid 图像绘制之 DrawableA...

  • Android 图像绘制之 Drawable(二)

    Android 图像绘制系列文章Android图像绘制之BitmapAndroid 图像绘制之 DrawableA...

  • 绘制三维图像

    练习:绘制三维图像

  • Matplotlib 绘3D图

    Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现。...

  • Matplotlib绘制基本图形

    1 绘制普通图像 2 绘制柱状图 3 绘制散点图 (1)绘制普通图像 demo1 结果 demo2 结果 demo...

  • 数据绘制

    plot(x,y) %绘制图像 hold on。%在原先的图像上继续绘制 xlabel %x轴 ylabel。 %...

  • Canvas

    Canvas绘图- JavaScript 来绘制图像 使用 JavaScript 来绘制图像canvas 元素本身...

  • java图像处理干货篇

    java图像处理干货篇 绘制图像 绘制图像主要用到的是Graphics类中drawImage方法,当然Graphi...

网友评论

      本文标题:三维度图像的绘制

      本文链接:https://www.haomeiwen.com/subject/sdibihtx.html