蝴蝶曲线,不同层次的翅膀的所有褶皱都有不同的颜色
Butterfly Curve with all the folds of the wings of different levels have different colors
我用以下代码绘制了蝴蝶曲线:
def butterfly_curve(timestamps):
x=np.zeros(timestamps.size)
y=np.zeros(timestamps.size)
for k in range(0,timestamps.size):
x[k] = np.sin(timestamps[k])*(np.exp(np.cos(timestamps[k]))-2*np.cos(4*timestamps[k])-(np.sin((timestamps[k]/12)))**5)
y[k] = np.cos(timestamps[k])*(np.exp(np.cos(timestamps[k]))-2*np.cos(4*timestamps[k])-(np.sin((timestamps[k]/12)))**5)
return x, y
time = np.arange(0, 12 * np.pi, 0.01)
plt.plot(butterfly_curve(time)[0],butterfly_curve(time)[1])
plt.xlabel('x')
plt.ylabel('y')
plt.axhline(0, color='black')
plt.axvline(0, color='black')
plt.title('Butterfly Curve')
plt.show()
谁能告诉我如何实现不同级别的翅膀的所有褶皱都有不同的颜色?
你的代码复杂且效率低下,函数可以简单写成
In [8]: def butterfly_curve(t):
...: c, s = np.cos(t), np.sin(t)
...: r = (np.exp(c)-2*np.cos(4*t)-(np.sin((t/12)))**5)
...: return s*r, c*r
接下来,要绘制不同颜色的“折叠”,您可以使用以下变体(我不知道什么是“折叠”),可能会更改①号。迭代次数,② 第一个间隔的长度和 ③ 循环结束时的附加常数
In [9]: fig, ax = plt.subplots()
...: t = np.linspace(0, np.pi, 301)
...: for n in range(12):
...: ax.plot(*butterfly_curve(t))
...: t += np.pi
(注意不需要调用函数两次,*
作为一元前缀运算符就是unpack operator)。
我用以下代码绘制了蝴蝶曲线:
def butterfly_curve(timestamps):
x=np.zeros(timestamps.size)
y=np.zeros(timestamps.size)
for k in range(0,timestamps.size):
x[k] = np.sin(timestamps[k])*(np.exp(np.cos(timestamps[k]))-2*np.cos(4*timestamps[k])-(np.sin((timestamps[k]/12)))**5)
y[k] = np.cos(timestamps[k])*(np.exp(np.cos(timestamps[k]))-2*np.cos(4*timestamps[k])-(np.sin((timestamps[k]/12)))**5)
return x, y
time = np.arange(0, 12 * np.pi, 0.01)
plt.plot(butterfly_curve(time)[0],butterfly_curve(time)[1])
plt.xlabel('x')
plt.ylabel('y')
plt.axhline(0, color='black')
plt.axvline(0, color='black')
plt.title('Butterfly Curve')
plt.show()
谁能告诉我如何实现不同级别的翅膀的所有褶皱都有不同的颜色?
你的代码复杂且效率低下,函数可以简单写成
In [8]: def butterfly_curve(t):
...: c, s = np.cos(t), np.sin(t)
...: r = (np.exp(c)-2*np.cos(4*t)-(np.sin((t/12)))**5)
...: return s*r, c*r
接下来,要绘制不同颜色的“折叠”,您可以使用以下变体(我不知道什么是“折叠”),可能会更改①号。迭代次数,② 第一个间隔的长度和 ③ 循环结束时的附加常数
In [9]: fig, ax = plt.subplots()
...: t = np.linspace(0, np.pi, 301)
...: for n in range(12):
...: ax.plot(*butterfly_curve(t))
...: t += np.pi
(注意不需要调用函数两次,*
作为一元前缀运算符就是unpack operator)。