使用python实现三维图可视化
作者:自然卷卷、 发布时间:2021-07-31 02:28:57
这是学习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()
问题:
虽然有文章已经指出安装mayavi时安装顺序为PyQt4-->Traits-->VTK-->Mayavi,但是并不知道原因,所以还是直接安装了mayavi,出现如下报错信息:
Microsoft Visual C++ 14.0 is required
原因:
缺少依赖包
解决:
根据文章所说,在https://www.lfd.uci.edu/~gohlke/pythonlibs/中查找到mayavi的相关依赖,
1、VTK通过pip install VTK安装
2.PyQt4无法通过pip install PyQt4安装,所以需要下载到Python安装目录的Script下(环境为python3.6,64位win),通过命令pip install PyQt4-4.11.4-cp36-cp36m-win_amd64.whl:
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
原因:
由于mayavi相关的包安装的是最新的版本,需要更新numpy
解决:
pip install --upgrade numpy
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
来源:https://blog.csdn.net/weixin_44778883/article/details/102820301


猜你喜欢
- Dreamweaver MX 2004新增加了表格宽度辅助线功能,让我们在编辑网页表格的时候能清楚地看到表格中各单元的宽度以及变化,很直观。
- 网络上有很多个性化的404页面,但是404页面不仅仅是个性化展示,404页面本来目的是:告诉浏览者其所请求的页面不存在或链接错误,同时引导用
- turtle的文档:https://docs.python.org/3/library/turtle.html用Python的turtle库
- 第一部分 关于requests库(1) requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用
- 查询数据指从数据库中获取所需要的数据。查询数据是数据库操作中最常用,也是最重要的操作。用户可以根据自己对数据的需求,使用不同的查询方式。通过
- 用pandas中的DataFrame时选取行或列:import numpy as npimport pandas as pdfrom pan
- 有时候很多朋友访问自己的asp或php等程序页面时出现一些错误,就是页面无法显示也没有详细的错误信息,就算iis中开启了显示详细的错误也不能
- 如下:将html文件下载后,使用BeauifulSoup读取文件,并且使用html.parsertmp_soup.select里面的参数为:
- Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,是一种基于64个可打印字符来表示二进制数据的方法。通过http传输图片常常
- 不废话,直接上代码Python3.6签到代码,只需修改url,账号,密码即可,此处是登录时无验证登录,有验证码的自行补充# -*- codi
- PyQt5树形结构控件QTreeWidget简介QTreeWidget 类根据预设的模型提供树形显示控件。QTreeWidget 使用类似于
- 注:本文档做了两个MYSQL实例,多个实例方法以此类推LINUX操作系统:centOS6.3 64bit(安装了系统默认开发包)数据库一:M
- 我就废话不多说了,大家还是直接看代码吧~import pymysqlfrom sshtunnel import SSHTunnelForwa
- *#type.jsfunction Person(name, age) { this.name = name; this
- 在for循环中是否需要缓存length值,相信很多程序猿们都纠结过此问题,下面就这一问题的分析请看下文:在JS性能优化中,有一个常见的小优化
- numpy中的ndarray转化成pytorch中的tensor : torch.from_numpy()pytorch中的tensor转化
- 本文研究的主要是PyQt5打开文件对话框QFileDialog的代码示例,具体如下。单个文件打开 QFileDialog.getOpenFi
- 一、概论超大型系统的特点为:1、处理的用户数一般都超过百万,有的还超过千万,数据库的数据量一般超过1TB;2、系统必须提供实时响应功能,系统
- 目录前言Tips - django版本区别路由匹配无名分组&有名分组无名分组有名分组小提示反向解析路由不涉及分组的反向解析有名分组&
- 虽然ting88没有注册的用户不能下载歌曲,但搞定它也非难事啊:)进入www.ting88.com的网站,把歌手专辑页面的URL复制到文本框