08 Python matplotlib numpy 绘制立体永生花送给永恒挚爱

113 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。 Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言, 随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。 Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。 Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。 自从20世纪90年代初Python语言诞生至2022年,它已被逐渐广泛应用于系统管理任务的处理和Web编程。

----------七夕就要来了,不论你是不是一个人,都祝你开心快乐啊-------------

代码:

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码


"""
* @Author: xiaofang
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:732481539
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
"""

fig = plt.figure(figsize=(8, 8))
ax = fig.gca(projection='3d')
[x, t] = np.meshgrid(np.array(range(25)) / 24.0, np.arange(0, 575.5, 0.5) / 575 * 30 * np.pi - 4 * np.pi)
p = (np.pi / 2) * np.exp(-t / (8 * np.pi))
change = np.sin(20 * t) / 50
u = 1 - (1 - np.mod(3.3 * t, 2 * np.pi) / np.pi) ** 4 / 2 + change
y = 2 * (x ** 2 - x) ** 2 * np.sin(p)
r = u * (x * np.sin(p) + y * np.cos(p)) * 1.5
h = u * (x * np.cos(p) - y * np.sin(p))
c = plt.get_cmap('magma')
surf = ax.plot_surface(r * np.cos(t), r * np.sin(t), h, rstride=1, cstride=1,
                       cmap=c, linewidth=0, antialiased=True)

ax.set_xticks([])
ax.set_yticks([])
ax.set_zticks([])

plt.rc('font', family='SimHei', size=11)
plt.title('永生花送给我的永恒挚爱')
plt.show()

效果: