python 3d绘图_Python数据分析之matplotlib(3D绘图)

3400ceb2dee215194fa2a0db01c6729c.png
6491a9ce6025b36db71cc7f036eeeda8.png

​绘制三维图形

首先补充一下numpy中meshgrid函数的用法。具体含义如下图所示

f0cf2c6796d7d3350813e6f0098391cd.png

meshgrid函数的用法

绘制3D曲面图

from matplotlib import pyplot as pltimport numpy as npfrom mpl_toolkits.mplot3d import Axes3D #导入三维绘制工具箱fig = plt.figure() # 创建一个绘图对象ax = Axes3D(fig) # #用这个绘图对象创建一个Axes对象(有3D坐标)X = np.arange(-4, 4, 0.25) #创建从-4到4,步长为0.25的arange对象Y = np.arange(-4, 4, 0.25)X, Y = np.meshgrid(X, Y) #用这两个arange对象中的可能取值一一映射去扩充为所有可能的取样点R = np.sqrt(X**2 + Y**2) #函数表示Z = np.sin(R)# 具体函数方法可用 help(function) 查看,如:help(ax.plot_surface)# rstride和cstride表示行列隔多少个取样点建一个小面# cmap表示绘制曲面的颜色ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow')plt.show()
f41cff130cdb5ca787e3fd4d77ec12d3.png

绘制三维散点图

import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Ddata = np.random.randint(0, 255, size=[40, 40, 40])#data = np.random.randint(0, 255, size=[3,40, 40, 40]) #四维x, y, z = data[0], data[1], data[2]#x, y, z = data[0,1], data[0,2], data[0,3] #取值时需要[0,index]ax = plt.subplot(111, projection='3d')  # 创建一个三维的绘图工程#  将数据点分成三部分画,在颜色上有区分度ax.scatter(x[:10], y[:10], z[:10], c='y')  # 绘制数据点ax.scatter(x[10:20], y[10:20], z[10:20], c='r')ax.scatter(x[30:40], y[30:40], z[30:40], c='g')ax.set_zlabel('Z')  # 坐标轴ax.set_ylabel('Y')ax.set_xlabel('X')plt.show()
b79cd401acdcc3eace5aadd9a656ae2c.png

参考

Numpy中Meshgrid函数介绍及2种应用场景(https://zhuanlan.zhihu.com/p/29663486)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值