显示几条随机线而不是多项式线的多项式数据

我有一个从 x 输出 y 的多项式函数(来自多项式最小二乘拟合)。我尝试绘制此曲线以显示多项式连续曲线,如此处的一些答案所示:使用 Matplotlib 和 coeffiecients 绘制多项式

我的代码可以简化为:

import sqlite3


con = sqlite3.connect(":memory:")

columns = ["Nom", "Age", "Taille"]

columns_str = '"' + '","'.join(columns) + '"'

con.execute(f"CREATE TABLE people ({columns_str})")


data = [

  ('Karl', 11, 185)

]

stmt = f"INSERT INTO people ({columns_str}) VALUES (?, ?, ?)"

con.executemany(stmt, data)

另外,可能不要打电话给你的桌子master——稍后会变得非常混乱。L像和 之类的名字list2也没有帮助。明确命名变量,按照它们的含义或包含的内容命名。未来的你会感谢你的。


也许更干净一点:


import sqlite3


con = sqlite3.connect(":memory:")

columns = ("Nom", "Age", "Taille")

con.execute("CREATE TABLE people (%s, %s, %s)" % columns)


data = [

  ('Karl', 11, 185)

]

stmt = f"INSERT INTO people (%s, %s, %s) VALUES (?, ?, ?)" % columns

con.executemany(stmt, data)

https://img1.sycdn.imooc.com/653884ba0001f0c906040397.jpg

倚天杖
浏览 129回答 2
2回答

繁星coding

问题正如另一个答案中所述。我的回答展示了如何以排序的方式进行绘图。x 数组和 y 数组是二维的 (10 x 1)。在我的回答中,我展示了三种使用 x 的排序索引作为参数来按相同顺序对 y 值进行排序的方法。方式一:plt.plot(sorted(x), y[np.argsort(x[:, 0])])方式二:plt.plot(sorted(x), y[np.argsort(x.ravel())])方式三:x_sorted = np.sort(x.ravel()) plt.plot(x_sorted, y[np.argsort(x_sorted)])

慕的地6264312

问题是你的观点没有顺序。该plot函数的默认行为是按照您指定的顺序在您指定的点之间绘制线条。你的点位于抛物线上,但不是从左到右(或从右到左,无论你使用哪一个)的顺序。如果删除线条并仅在点的位置绘制标记 ( plt.plot(x, y, linestyle="", marker="o")),您可以看到以下内容:对数组进行排序x可以让您获得所需的输出,但您需要将y数组排序为相同的顺序。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python