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')
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章标题:python之画三维图像-创新互联
链接地址:http://hbruida.cn/article/doejgo.html