使用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()

问题:

虽然有文章已经指出安装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

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

(0)

相关推荐

  • 关于Python可视化Dash工具之plotly基本图形示例详解

    Plotly Express是对 Plotly.py 的高级封装,内置了大量实用.现代的绘图模板,用户只需调用简单的API函数,即可快速生成漂亮的互动图表,可满足90%以上的应用场景. 本文借助Plotly Express提供的几个样例库进行散点图.折线图.饼图.柱状图.气泡图.桑基图.玫瑰环图.堆积图.二维面积图.甘特图等基本图形的实现. 代码示例 import plotly.express as px df = px.data.iris() #Index(['sepal_length', '

  • python爬取各省降水量及可视化详解

    在具体数据的选取上,我爬取的是各省份降水量实时数据 话不多说,开始实操 正文  1.爬取数据 使用python爬虫,爬取中国天气网各省份24时整点气象数据 由于降水量为动态数据,以js形式进行存储,故采用selenium方法经xpath爬取数据-ps:在进行数据爬取时,最初使用的方法是漂亮汤法(beautifulsoup)法,但当输出爬取的内容(<class = split>时,却空空如也.在源代码界面Ctrl+Shift+F搜索后也无法找到降水量,后查询得知此为动态数据,无法用该方法进行爬取

  • python用pyecharts实现地图数据可视化

    有的时候,我们需要对不同国家或地区的某项指标进行比较,可简单通过直方图加以比较.但直方图在视觉上并不能很好突出地区间的差异,因此考虑地理可视化,通过地图上位置(地理位置)和颜色(颜色深浅代表数值差异)两个元素加以体现.在本文案例中,基于第三方库pyecharts,对中国各省2010-2019年的GDP进行绘制. 我们先来看看最终效果: 关于绘图数据 基于时间和截面两个维度,可把数据分为截面数据.时间序列及面板数据.在本文案例中,某一年各省的GDP属于截面数据,多年各省的GDP属于面板数据.因此,

  • Python实现疫情地图可视化

    一. json模块 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率. json.loads():将json格式的str转化成python的数据格式: json.loads():将python的数据格式(字典或列表)转化成json格式: # 如何将json数据解析成我们所熟悉的Python数据类型? import json # 将json格式的str转化成python的数据格式:字典 d

  • Python绘制K线图之可视化神器pyecharts的使用

    K线图 概念 股市及期货市bai场中的K线图的du画法包含四个zhi数据,即开盘dao价.最高价.最低价zhuan.收盘价,所有的shuk线都是围绕这四个数据展开,反映大势的状况和价格信息.如果把每日的K线图放在一张纸上,就能得到日K线图,同样也可画出周K线图.月K线图.研究金融的小伙伴肯定比较熟悉这个,那么我们看起来比较复杂的K线图,又是这样画出来的,本文我们将一起探索K线图的魅力与神奇之处吧! K线图 用处 K线图用处于股票分析,作为数据分析,以后的进入大数据肯定是一个趋势和热潮,K线图的专

  • Python绘制词云图之可视化神器pyecharts的方法

    自定义图片生成词云图的多种方法 有时候我们会根据具体的场景来结合图片展示词云,比如我分析的是美团评论,那么最好的展示方法就是利用美团的logo来做词云图的底图展示,下面我们就介绍几种常用的方法! 根据喜爱的图片生成词云轮廓 from wordcloud import WordCloud import jieba import matplotlib.pyplot as plt import numpy as np import PIL.Image as Image text = open(u'da

  • python实现棋盘覆盖问题及可视化

    问题介绍 棋盘覆盖问题,是一种编程问题. 如何应用分治法求解棋盘覆盖问题呢?分治的技巧在于如何划分棋盘,使划分后的子棋盘的大小相同,并且每个子棋盘均包含一个特殊方格,从而将原问题分解为规模较小的棋盘覆盖问题.k>0时,可将2k×2k的棋盘划分为4个2(k-1)×2(k-1)的子棋盘.这样划分后,由于原棋盘只有一个特殊方格,所以,这4个子棋盘中只有一个子棋盘包含该特殊方格,其余3个子棋盘中没有特殊方格.为了将这3个没有特殊方格的子棋盘转化为特殊棋盘,以便采用递归方法求解,可以用一个L型骨牌覆盖这3

  • 使用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.lins

  • Python绘制折线图可视化神器pyecharts案例

    目录 前言 折线图模板系列 自定义标签数据折线图 一天用电量折线图(特定场景) 断点折线图(根据场景进行配置) 双折线图显示最低最高数据标签(不显示其他数据标签) 双折线图显示平均刻度数据标签(数据可显示) 断点折线图(显示数据项) 面积折线图(不紧贴) 3D旋转弹簧图 前言 相信有很多的小伙伴看了如此多个案例之后肯定有所发现,每一个案例都对应着每一个配置,如果是官方配置文档,说实话看起来真的很难,这样通过案例实现来解决各种参数的配置,我觉得有一定的参考价值和学习意义,正所谓“磨刀不误砍工”,如

  • python绘制三维图的详细新手教程

    目录 一.初始化 二.直线绘制(Line plots) 三.散点绘制(Scatter plots) 四.线框图(Wireframe plots) 五.表面图(Surface plots) 六.三角表面图(Tri-Surface plots) 七.等高线(Contour plots) 八.Bar plots(条形图) 九.子图绘制(subplot) 补充: 总结 本文仅仅梳理最基本的绘图方法. 一.初始化 假设已经安装了matplotlib工具包. 利用matplotlib.figure.Figu

  • Python绘图之二维图与三维图详解

    各位工程师累了吗? 推荐一篇可以让你技术能力达到出神入化的网站"持久男" 1.二维绘图 a. 一维数据集 用 Numpy ndarray 作为数据传入 ply 1. import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt np.random.seed(1000) y = np.random.standard_normal(10) print "y = %s"% y x =

  • Python实现读取txt文件并画三维图简单代码示例

    记忆力差的孩子得勤做笔记! 刚接触python,最近又需要画一个三维图,然后就找了一大堆资料,看的人头昏脑胀的,今天终于解决了!好了,废话不多说,直接上代码! #由三个一维坐标画三维散点 #coding:utf-8 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d.axes3d import Axes3D x = [] y = [] z = [] f = open("data\\record.

  • Python 绘制酷炫的三维图步骤详解

    通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体为例. 1 安装相关包 首先安装两个必备包: import pyrr # NumPy 的 3D 函数库 import svgwrite # svg图形处理库 2 定义 3D 图生成环境 接下来定义几个类设置好 3 维图基础环境: viewport :矩形图范围 camera:包括视图矩阵和投影矩阵

  • python 画三维图像 曲面图和散点图的示例

    用python画图很多是根据z=f(x,y)来画图的,本博文将三个对应的坐标点输入画图: 散点图: import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = fig.add_subplot(111, projection='3d') X = [1, 1, 2, 2] Y = [3, 4, 4, 3] Z = [1, 2, 1, 1] ax.scatter(X, Y

  • python matplotlib绘制三维图的示例

    作者:catmelo 本文版权归作者所有 链接:https://www.cnblogs.com/catmelo/p/4162101.html 本文参考官方文档:http://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html 起步 新建一个matplotlib.figure.Figure对象,然后向其添加一个Axes3D类型的axes对象. 其中Axes3D对象的创建,类似其他axes对象,只不过使用projection='3d'关键词. impo

  • Python实现平行坐标图的绘制(plotly)方式

    平行坐标图简介 当数据的维度超过三维时,此时数据的可视化就变得不再那么简单.为解决高维数据的可视化问题,我们可以使用平行坐标图.以下关于平行坐标图的解释引自百度百科:为了克服传统的笛卡尔直角坐标系容易耗尽空间. 难以表达三维以上数据的问题, 平行坐标图将高维数据的各个变量用一系列相互平行的坐标轴表示, 变量值对应轴上位置.为了反映变化趋势和各个变量间相互关系,往往将描述不同变量的各点连接成折线.所以平行坐标图的实质是将m维欧式空间的一个点Xi(xi1,xi2,...,xim) 映射到二维平面上的

  • python实现三维拟合的方法

    如下所示: from matplotlib import pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = Axes3D(fig) #列出实验数据 point=[[2,3,48],[4,5,50],[5,7,51],[8,9,55],[9,12,56]] plt.xlabel("X1") plt.ylabel("X2") #

随机推荐