matplotlib 点与点之间的连线问题[重复]

4si2a6ki  于 2023-10-24  发布在  其他
关注(0)|答案(2)|浏览(130)

此问题已在此处有答案

Given parallel lists, how can I sort one while permuting (rearranging) the other in the same way?(16个回答)
2小时前关闭
尝试使用curve_fit拟合sin函数到这里的一些点。当绘制拟合和点时,我得到了一些我不知道如何解释的东西,所以我最好发布一些图像。
使用以下代码行可以得到:

plt.plot(phase_min, sinusoidal_function(phase_min, *popt), '.', lw=3)

使用线样式'-',我得到:

我怎么能用一条该死的线连接每个相邻的点,而不是中间的所有点?

m3eecexj

m3eecexj1#

当你在matplotlib中绘制一条线时,它会自动按照提供的顺序连接这些点。请参见下面的示例:

import matplotlib.pyplot as plt
plt.plot([1,3,2], [1,2,3])

你的问题是你的phase_min没有排序,matplotlib试图按顺序连接你的数据点。实际上,因为你已经得到了拟合函数,你不需要使用原始数据来绘制函数。你可以只定义你想要绘制直线的数据点,如下所示。这样你就可以有尽可能多的数据点来绘制曲线,所以这条线会比你用原始数据点作图更平滑。

x=np.arange(0, 1, 0.001)
y=sinusoidal_function(x, *popt)
plt.plot(x,y)
yqkkidmi

yqkkidmi2#

可以使用np.argsort

order = np.argsort(x)
xsorted = x[order]
ysorted = y[order]

其中xy是橙子点的坐标。

相关问题