【附源码】Python :球体建模

系列文章目录

Python 建模入门:球体建模



一、建模需求

使用matplotlib库和mpl_toolkits.mplot3d模块来绘制一个球体的3D图形,并带有坐标轴。


二、源代码

代码如下:

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

# 设置matplotlib的默认字体为黑体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

def draw_sphere_with_axes(radius=1):
    # 创建一个新的图和子图
    fig = plt.figure()
    ax = fig.add_subplot(111, projection='3d')

    # 生成球体的网格
    phi = np.linspace(0, 2 * np.pi, 100)
    theta = np.linspace(0, np.pi, 100)
    phi, theta = np.meshgrid(phi, theta)
    x = radius * np.sin(theta) * np.cos(phi)
    y = radius * np.sin(theta) * np.sin(phi)
    z = radius * np.cos(theta)

    # 绘制球体网格
    ax.plot_surface(x, y, z, color='b', alpha=0.5)

    # 设置坐标轴范围
    ax.set_xlim([-1.5 * radius, 1.5 * radius])
    ax.set_ylim([-1.5 * radius, 1.5 * radius])
    ax.set_zlim([-1.5 * radius, 1.5 * radius])

    # 设置坐标轴比例为等比例
    ax.set_box_aspect([1, 1, 1])

    # 显示坐标轴
    ax.set_axis_on()

    # 设置坐标轴标题
    ax.set_xlabel('X轴', fontsize=12)
    ax.set_ylabel('Y轴', fontsize=12)
    ax.set_zlabel('Z轴', fontsize=12)

    # 显示图形
    plt.show()

# 调用函数绘制带坐标轴的球体
draw_sphere_with_axes(1)

三、代码分析

1.导入matplotlib.pyplot模块,并给它起了个简短的别名plt。这是用于绘图的基础模块。

2.从mpl_toolkits.mplot3d导入Axes3D,这是用于创建3D坐标轴的类。

3.导入numpy库,这是用于数值计算的基础模块,提供了大量的数学函数和对多维数组的支持。

4.从matplotlib.font_manager导入FontProperties,这用于指定字体属性,但在此代码中并未使用。

5-8. 设置matplotlib的默认字体为黑体(SimHei),并设置axes.unicode_minus为False,以便能够正常显示负号。

10.定义了一个名为draw_sphere_with_axes的函数,该函数接受一个参数radius(半径),其默认值为1,用于定义球体的大小。

12-14. 创建一个新的matplotlib图形,并添加一个3D坐标轴。

16-22. 生成球体的网格。使用numpy的linspace和meshgrid函数生成经纬度网格,然后计算对应的球体上的点的坐标。

24.使用plot_surface方法绘制球体的表面。x、y、z是球体上的点的坐标,color='b’设置球体颜色为蓝色,alpha=0.5设置透明度为0.5。

26-29. 设置3D坐标轴的范围,以便适当地显示球体。

31.设置坐标轴比例为等比例,这样在所有轴上的单位长度都是相同的。

32.显示坐标轴。

35-37. 设置坐标轴的标题,并指定字体大小。

39.调用plt.show()来显示图形。

40.调用draw_sphere_with_axes函数来绘制一个半径为1的球体。

代码中使用plot_surface方法绘制了一个球体,该方法能够根据提供的经纬度网格和球体半径生成3D表面上的点,并将其绘制出来。这种方法是创建复杂3D形状的一种简便方式。


四、效果展示

球体

总结

以上就是今天要讲的内容,运行这段代码会弹出一个窗口,显示一个3D球体,球体带有坐标轴,坐标轴的标题分别标记为"X轴"、“Y轴"和"Z轴”。坐标轴的范围被设置为球体半径的1.5倍,以确保球体完全显示在视窗内。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱吃饭团的饭桶

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值