Python绘制三维图详解

利用Python绘制三维图

目标: 绘制图像 z 2 = x 2 + y 2 z^2 = x^2 + y^2 z2=x2+y2

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D #绘制3D图案

画曲面的第一步是就是要创建一个二维平面的网格,在Python当中,我们使用meshgrid()函数,在matlab中也是这个函数哦

创建数据:首先创建x和y,它们的范围都是(-1,1)

x = np.linspace(-1,1,100)
y = np.linspace(-1,1,50)

然后调用numpy中的meshgrid函数,进行网格化操作。

x_,y_ = np.meshgrid(x,y,indexing='ij') 

x_,y_返回网格数组,通过打印x_和y_的形状,可以看到x_,y_都是(100*50) 的二维数组,也就是数组x的长度乘以数组y的长度

print(x_.shape,y_.shape)  
(100, 50) (100, 50)

网格化统一了X,Y的维度,数组运算时,涉及更多数据,范围更广

z_ = x_**2 + y_**2

绘制图形

plt.figure():自定义图像
.add_subplot():添加子图
.plot_surface():绘制曲面
.colorbar():添加颜色棒

fig = plt.figure(figsize=(12,8),facecolor='white') #创建图片
sub = fig.add_subplot(111,projection='3d')# 添加子图,
surf = sub.plot_surface(x_,y_,z_,cmap=plt.cm.brg) #绘制曲面,并设置颜色cmap
cb = fig.colorbar(surf,shrink=0.8,aspect=15) #设置颜色棒


sub.set_xlabel(r"$x$")
sub.set_ylabel(r"$y$")
sub.set_zlabel(r"$z$")
plt.show()

完整代码

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D #绘制3D图案

x = np.linspace(-1,1,100)
y = np.linspace(-1,1,50)
x_,y_ = np.meshgrid(x,y,indexing='ij') 
z_ = x_**2 + y_**2
fig = plt.figure(figsize=(12,8),facecolor='white') #创建图片
sub = fig.add_subplot(111,projection='3d')# 添加子图,
surf = sub.plot_surface(x_,y_,z_,cmap=plt.cm.brg) #绘制曲面,并设置颜色cmap
cb = fig.colorbar(surf,shrink=0.8,aspect=15) #设置颜色棒

sub.set_xlabel(r"$x$")
sub.set_ylabel(r"$y$")
sub.set_zlabel(r"$z$")
plt.show()

请添加图片描述

  • 5
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要在Python绘制三维图形,你可以使用Matplotlib库。引用中提供了一篇关于使用Matplotlib绘制三维图形的博客文章,可以作为参考。 下面是一种绘制三维图形的方法,使用了Matplotlib中的Axes3D类。引用提供了这种方法的示例代码。首先,你需要导入必要的库,包括pyplot和Axes3D。然后,创建一个像对象和一个三维坐标轴对象。接下来,你可以使用坐标轴对象的方法来添加和配置形的各个元素。 例如,如果你想绘制方程z^2 = x^2 + y^2的像,你可以使用numpy库生成一组x、y和z的值,并使用plot_surface函数来绘制一个三维曲面。引用提供了这个示例代码。 注意,这只是使用Matplotlib绘制三维图形的一种方法,你还可以尝试其他方法来实现你想要的效果。切记,要根据你的具体需求进行调整和配置。 以下是一个示例代码,展示了如何使用Matplotlib绘制一个三维曲面像: ```python import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D # 生成一组x、y和z的值 x = np.linspace(-5, 5, 100) y = np.linspace(-5, 5, 100) x, y = np.meshgrid(x, y) z = np.sqrt(x**2 + y**2) # 创建像对象和三维坐标轴对象 fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # 绘制三维曲面像 ax.plot_surface(x, y, z) # 设置坐标轴标签 ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') # 显示像 plt.show() ``` 希望这个示例代码和解释能够帮助你更好地理解如何在Python中使用Matplotlib绘制三维图形。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python三维——Matplotlib](https://blog.csdn.net/Lois_llw/article/details/122408596)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Python绘制三维图详解](https://blog.csdn.net/qq_45176548/article/details/127998794)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北山啦

这个功能还没人试过呢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值