python之画三维图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之画三维图像相关的知识,希望对你有一定的参考价值。

一:利用的包:
(1)构建三维对象:mpl_toolkits.mplot3d里面导入Axes3D
(2)数据方面操作:numpy
(3)绘图工具包:matplotlib.pyplot

二:绘图:
1、绘图主要分成两种情况:
(1)一种是根据函数来绘制三维图
(2)一种是根据三维坐标绘制散点图

2、代码一:绘制散点图(加颜色,修饰什么的省略)

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

#读取数据

datasets=[]
with open(r‘a.csv‘,‘rt‘) as f:
             lines=csv.reader(f)
             for line in lines:
                     datasets.append(line)

#获取有用部分
datesets=datasets[1:]

#转化为array数组,便于列数据的切片获取
datasets=np.array(datasets)

#数据类型转换一下,以防止画图时精度缺失报错
X=datasets[:,-3].astype(‘float32‘)
Y=datasets[:,-2].astype(‘float32‘)
Z=datasets[:,-1].astype(‘float32‘)

ax=plt.subplot(111,projection=‘3d‘)
ax.scater(X,Y,Z)
ax.set_zlabel(‘z‘)
ax.set_ylabel(‘y‘)
ax.set_xlabel(‘x‘)

plt.show()

代码二:以z=x+y2为例画出三维图:


from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import nmpy as np
fig=plt.figure()
ax=Axes3D(fig)

#生成x,y的网格数据
X=np.arange(-4,4,0.25)
Y=np.arange(-4,4,0.25)

X,Y=np.meshgrid(X,Y)
R=np.sqrt(X+Y**2)

Z=np.sin(R)

ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=‘rainbow‘)

以上是关于python之画三维图像的主要内容,如果未能解决你的问题,请参考以下文章

VS2010/MFC编程入门之五十一(图形图像:GDI对象之画刷CBrush)

(转载)VS2010/MFC编程入门之五十一(图形图像:GDI对象之画刷CBrush)

跟我学Python图像处理丨基于灰度三维图的图像顶帽运算和黑帽运算

跟我学Python图像处理丨基于灰度三维图的图像顶帽运算和黑帽运算

python(matplotlib)三维图像绘制,旋转坐标轴视角,坐标轴拉伸,缩放比例

一文看懂如何用 Python 查看三维数据 (nii.gz格式) 的各种图像参数