网络编程
位置:首页>> 网络编程>> Python编程>> 使用python实现三维图可视化

使用python实现三维图可视化

作者:自然卷卷、  发布时间:2021-07-31 02:28:57 

标签:python,三维图,可视化

这是学习tensorflow框架中遇到的知识,这里定义函数的时候选用的是将x和y封装起来,方便tensorflow求导。

要慢慢习惯这种写法


import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def himmelblau(x):
return (x[0]**2 + x[1] - 11)**2 + (x[0] + x[1]**2 - 7)**2
x = np.linspace(-6, 6, 200)
y = np.linspace(-6, 6, 200)
X, Y = np.meshgrid(x, y)
fig = plt.figure(figsize=(12, 10))
ax = fig.gca(projection='3d')
ax.plot_surface(X, Y, Z)   # 画曲面
# ax.plot(X, Y, Z)       # 画曲线,好像x, y得是一维的
ax.view_init(60, -30)       # 好像是调成图的角度
ax.set_xlabel('X')
ax.set_ylabel('Y')
plt.show()

补充:python3安装mayavi,实现3d动态可视化操作

如下代码呢,是在网上找的,搜索关键词“python 3d 动态可视化”,从找到代码到真正执行成功,问题及解决方法记录一下。

环境win8 64位,python3.6


import numpy as np
from mayavi import mlab
x, y = np.ogrid[-2:2:160j, -2:2:160j]
z = abs(x) * np.exp(-x ** 2 - (y / .75) ** 2)
pl = mlab.surf(x, y, z, warp_scale=2)
mlab.axes(xlabel='x', ylabel='y', zlabel='z')
mlab.outline(pl)
mlab.show()

使用python实现三维图可视化使用python实现三维图可视化

问题:

虽然有文章已经指出安装mayavi时安装顺序为PyQt4-->Traits-->VTK-->Mayavi,但是并不知道原因,所以还是直接安装了mayavi,出现如下报错信息:

Microsoft Visual C++ 14.0 is required

使用python实现三维图可视化

原因:

缺少依赖包

解决:

根据文章所说,在https://www.lfd.uci.edu/~gohlke/pythonlibs/中查找到mayavi的相关依赖,

1、VTK通过pip install VTK安装

使用python实现三维图可视化

2.PyQt4无法通过pip install PyQt4安装,所以需要下载到Python安装目录的Script下(环境为python3.6,64位win),通过命令pip install PyQt4-4.11.4-cp36-cp36m-win_amd64.whl:

使用python实现三维图可视化

3、Traits并不是作为mayavi的依赖包,而是属于ETS的一部分,同样通过下载文件,pip install traits-4.6.0-cp36-cp36m-win_amd64.whl安装

4、mayavi安装,同样通过下载文件,pip install mayavi-4.6.0+vtk81-cp36-cp36m-win_amd64.whl安装

注:PyQt4、Traits、mayavi也不是不能通过pip install直接从网上下载安装,应该还是缺少相关的依赖,这里只保证通过文件安装不出错。

问题:

运行代码时报错:ImportError: numpy.core.multiarray failed to import

使用python实现三维图可视化

原因:

由于mayavi相关的包安装的是最新的版本,需要更新numpy

解决:


pip install --upgrade numpy

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

来源:https://blog.csdn.net/weixin_44778883/article/details/102820301

0
投稿

猜你喜欢

  • 函数getcache,会自动建立需要的缓存。 代码如下:Function getcache(funsname,isreset,is
  • 从技术上来说,在ASP环境中,读入并管理XML文本的主要方法有三种: 创建MSXML对象,并且将XML文档载入DOM; 使用服务器端嵌入(S
  • 上传问题可以说是网络编程中经常遇到的,也是一个很重要的问题,我们不仅要实现上传文件,图片等基本功能,还有考虑到上传程序的安全性,本文介绍了一
  • 从MySQL 5.0.2开始,通过mysql_stmt_attr_set() C API函数实现了服务器端光标。服务器端光标允许在服务器端生
  • 安装完 Oracle11g 之后,想打开自带的 SQL Plus 来学习,然后按照提示用 sys 用户来连接数据库,可输了好几次都提示一个错
  • 遇到一个难题,在无物理键盘情况下,通过页面软键盘在页面文本框输入汉字,不知道51js的各位大牛有没有遇到过这种需求,如果遇到过是如何解决的,
  • 减少HTTP请求,是可以提高网站速度的,把所有的背景图像都放到一个图片文件中,然后通过CSS的background-image和backgr
  • 最近在着手支付宝个人版改版的项目,正好在一些国内知名的SNS网站上分别注册了帐户进行体验。显然一点,国内的SNS都带有Facebook的影子
  • 一个已知管用的方法是,使用session_set_save_handler,接管所有的session管理工作,一般是把session信息存储
  • 在Web标准中的页面布局是使用Div配合CSS来实现的。这其中最常用到的就是使整个页面水平居中的效果,这是在页面布局中基本,也是最应该首先掌
  • 1、灵活运用样式 熟悉网页设计的网友就知道,调用Style的方法很多,我们可以单击鼠标右键选择Custon Style来调用Style标准,
  • WebSocket 是什么?摘抄网上的一些解释:WebSocket 协议是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工(f
  • 据了解绝大多数开发人员对于索引的理解都是一知半解,局限于大多数日常工作没有机会、也什么没有必要去关心、了解索引,实在哪天某个查询太慢了找到查
  • 介绍目前它是Python数值计算中最为重要的基础包,将numpy的数组的对象作为数据交互的通用语,一般我们要充分理解好矩阵计算的原理,这需要
  • 如果不用类库(如jquery)来写,往往很多时候,都需要通过id或tag来获取html里的某一对象,然后对其进行操作。为了节省代码,把常用的
  • 一个简单的for语句就能循环字典的所有键,就像处理序列一样:In [1]: d = {'x':1, 'y':
  • 1、页签的表达。页签表达很清晰,当前页签突出,且层级包涵关系明确;看下图,一目了然的感觉,不用疑惑我在那部分里。不信?拿当当的对比一下,你感
  • MYSQL数据库以它短小、方便、速度快、免费等优点成为很多网站目前首选数据库,但一般都是用PHP+MYSQL相结合来开发各种动态页面,其实A
  •  一、前言 JDK(Java Development Kit )是一切java应用程序的基础,可以说,所有的java应用程序是构建
  • ps:大多与c等编程语言极为相似一、if分支if:给定一个条件,同时为该条件设置多种(一般两种)情况,然后通过条件判断来实现具体的执行段复合
手机版 网络编程 asp之家 www.aspxhome.com