使用python绘制3d的图形

作者: DayDayUpppppp | 来源:发表于2017-05-28 18:38 被阅读0次

机器学习里面通常需要寻找代价函数的最小值,所有如果可以把图形绘制出来,对于初学者分析起来就会简明很多。

下面取一个例子,绘制z=x²+y²,(x,y的取值范围是 [-5,5] )

实现的代码:

import matplotlib.pyplot as plt 
import numpy as np 
import pandas as pd 
from mpl_toolkits.mplot3d import Axes3D

#创建一个Axes3d对象
fig=plt.figure()
ax=Axes3D(fig)

#x,y的取值返回是从-5到+5,每隔0.25取一个点
x=np.arange(-5,5,0.25)
y=np.arange(-5,5,0.25)

#[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,
#这两个矩阵可以用来表示mesh和surf的三维空间点以及两个变量的赋值。
#其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制。
x,y=np.meshgrid(x,y)
#r=np.sqrt(x**2+y**2)
#z=np.sin(r)
z=x**2+y**2

#plot_surface 是绘制一个平面 ax.scatter 是绘制点
surf=ax.plot_surface(x,y,z)

plt.show()

绘制的结果:

2017-05-28 18-37-21屏幕截图.png
补充

1. 对于x,y=np.meshgrid(x,y) 函数作用的分析:

例如, 要在“3<=x<=5,6<=y<=9,z不限制区间” 这个区域内绘制一个3D图形,如果只需要整数坐标为采样点的话。我们可能需要下面这样一个坐标构成的矩阵:
(3,9),(4,9),(5,9);
(3,8),(4,8),(5,8);
(3,7),(4,7),(5,7);
(3,6),(4,6),(5,6);

我们可以这样描述这个坐标矩阵:
把各个点的x坐标独立出来,得:
3,4,5;
3,4,5;
3,4,5;
3,4,5;
再把各个点的y坐标也独立出来:
9,9,9;
8,8,8;
7,7,7;
6,6,6;
这样对应的x、y结合,便表示了上面的坐标矩阵。meshgrid就是产生这样两个矩阵,来简化我们的操作。然后根据(x, y)计算获得z,并绘制出三维图形。

相关文章

  • Python-Turtle库

    使用turtle库在Python中绘制简单图形 【方法】 #引入绘制图形的turtle库•import turtl...

  • 使用python绘制3d的图形

    机器学习里面通常需要寻找代价函数的最小值,所有如果可以把图形绘制出来,对于初学者分析起来就会简明很多。 下面取一个...

  • 15 使用 Canvas 绘图

    本章内容 理解 元素 绘制简单的 2D 图形 使用 WebGL 绘制 3D 图形 这个元素负责在页面中设定一个区域...

  • 2019-10-31 画有意思的图

    使用Matplotlib绘制3D图形 【matplotlib】 之 清理、清除 axes 和 figure (pl...

  • 2.1

    简介 Python图形绘制2.1 深入理解Python语言2.2 实例 绘制2.3 模块一 turtle库的使用2...

  • Python 使用 matplotlib绘制3D图形

    3D图形在数据分析、数据建模、图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何在Python中使用...

  • 数据分析(4)--Matplotlib入门

    一、概述 Matplotlib是python中的一个包,主要用于绘制2D图形(当然也可以绘制3D,但是需要额外安装...

  • ZBrush如何雕刻布料和衣服上的褶皱

    本教程我们将向3D艺术家Benjamin Leitgeb学习如何使用ZBrush®3D图形绘制软件为他的“For ...

  • WebGL

    WebGL 使用户 绘制和渲染3D图形使用户 通过页面与三维图形交互技术栈: HTML、HTML5、JavaScr...

  • matplotlib手册(12) - 绘制3D图形

    想画个3D的图形,这里看看matplotlib怎样绘制3D图形。官方文档地址:The mplot3d Toolki...

网友评论

    本文标题:使用python绘制3d的图形

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