问题描述
我想绘制各种螺旋,如图所示(一个螺旋在另一个螺旋内)。假设我有三个螺旋(S1,S2和S3),并且我想填充连续螺旋之间的区域,即S1和S2,S2和S3之间的区域,最后是S3和S1之间的区域。
我尝试了几种方法来解决以下两个问题,但没有成功:
1-一对螺旋之间的区域应涂上内插颜色。例如,第一个螺旋(S1)是黑色,第二个螺旋(S2)是灰色,那么S1和S2之间的区域必须是从黑色到灰色的渐变。
2- S3和S1之间的区域未按我的要求填充。在这里,填充的区域在S1和S3之间,而不是在S3和S1之间。
这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
def create_archimides_spiral(a=0,b=1,num_spirals=10):
"""
Functions that creates an archimides spiral
"""
th = np.linspace(0,num_spirals*np.pi,num_spirals*100) # The higher the number of splits,the greater the quality of each segment
r = a + b*th
x = r * np.cos(th)
y = r * np.sin(th)
return x,y
# create the spirals
x,y = create_archimides_spiral(a=0,b=1)
x1,y1 = create_archimides_spiral(a=2,b=1)
x2,y2 = create_archimides_spiral(a=4,b=1)
fig,ax = plt.subplots(1)
ax.plot(x,y,color='black',linewidth=3)
ax.plot(x1,y1,color='gray',linewidth=3)
ax.plot(x2,y2,color='silver',linewidth=3)
plt.fill(
np.append(x,x1[::-1]),np.append(y,y1[::-1]),color= "lightgray"
)
plt.fill(
np.append(x1,x2[::-1]),np.append(y1,y2[::-1]),color= "lightgray"
)
plt.fill_between(x,interpolate=True)
plt.fill_between(x1,interpolate=True)
ax.set_aspect(1)
plt.show()
这是我获得的数字,但这不是我想要的。
在此方面,我将不胜感激。
最佳成绩
奥斯卡
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)