python画玫瑰

import numpy as np
import matplotlib.pyplot as plt


fig = plt.figure()

# 在图形对象中添加一个三维的子图
ax = fig.add_subplot(111, projection='3d')

# 使用np.meshgrid函数创建了一个二维的坐标网格,x和t分别是网格点的横纵坐标
[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))

# 使用plt.get_cmap函数创建了一个颜色映射对象,这里使用了'magma'颜色映射
c = plt.get_cmap('magma')

# 使用ax.plot_surface函数在三维子图上绘制了一个曲面,使用了之前计算得到的参数和颜色映射
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([])

# 去除外框
ax.axis('off')

plt.show()


# fig = plt.figure()
# # 在图形对象中添加一个三维的子图
# ax = fig.add_subplot(111, projection='3d')
# # 使用np.meshgrid函数创建了一个二维的坐标网格,x和t分别是网格点的横纵坐标
# [x, t] = np.meshgrid(np.array(range(25)) / 24.0, np.arange(0, 575.5, 0.5) / 575 * 20 * np.pi + 4*np.pi)
# # 计算了一些参数,用于定义后面绘制的曲面的形状
# p = (np.pi / 2) * np.exp(-t / (8 * np.pi))
# # 添加边缘扰动
# change = np.sin(15*t)/150
# # 将t的参数减少,使花瓣的角度变大
# 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))
# h = u * (x * np.cos(p) - y * np.sin(p))
#
# # 使用plt.get_cmap函数创建了一个颜色映射对象,这里使用了'Reds'颜色映射
# c = plt.get_cmap('Reds')
# # 使用ax.plot_surface函数在三维子图上绘制了一个曲面,使用了之前计算得到的参数和颜色映射
# 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([])
#
# # 去除外框
# ax.axis('off')
#
# plt.show()
在这里插入图片描述在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值