我正在编写一个python脚本来插入一组给定的样条点.这些点由它们的[x, y]坐标定义.
我试着使用这段代码:
x = np.array([23, 24, 24, 25, 25])
y = np.array([13, 12, 13, 12, 13])
tck, u = scipy.interpolate.splprep([x,y], s=0)
unew = np.arange(0, 1.00, 0.005)
out = scipy.interpolate.splev(unew, tck)
Run Code Online (Sandbox Code Playgroud)
这给了我这样一条曲线:
但是,我需要有一个平滑的闭合曲线 - 在上面的图片上,其中一个点的衍生物显然是不一样的.我怎样才能做到这一点?
这是我的代码:
from matplotlib import pyplot as plt
dec = pd.read_csv('POLAR.txt', sep=" ", header=None, skiprows=1)
ra = [0,30,60,90,120,150,180,210,240,270,300,330]
ra = [x/180.0*np.pi for x in ra]
ax = plt.subplot(111, projection='polar')
plt.polar(ra, dec, 'ok')
plt.plot(ra,dec, data=ra , marker='o', color='olive', linewidth=2)
ax.set_yticklabels([])
Run Code Online (Sandbox Code Playgroud)
我仍然不确定如何连接最后一点和第一点。这就是我得到的:

我想知道如何用曲线连接这些点?有没有办法得到这个花生形图的方程?
我试图弄清楚如何在极坐标图中的两点之间创建圆弧,但我绘制的线是连接它们的直线,即使该图是极坐标的。
我需要使用不同的绘图函数来代替吗ax.plot?
我注意到有些补丁matplotlib可能是我应该使用的,但我不确定如何以这种方式添加它们。
如何在极坐标图上从 A 点和 B 点绘制一条曲线?
# Create polar plot object
with plt.style.context("seaborn-white"):
fig = plt.figure(figsize=(5,5))
ax = fig.add_subplot(111, projection="polar")
# Draw 3 lines
for degree in [90, 210, 330]:
rad = np.deg2rad(degree)
ax.plot([rad,rad], [0,1], color="black", linewidth=2)
# Connect two points with a curve
for curve in [[[90, 210], [0.5, 0.8]]]:
curve[0] = np.deg2rad(curve[0])
ax.plot(curve[0], curve[1])
Run Code Online (Sandbox Code Playgroud)