现在我只想根据两个 numpy 数组绘制一个折线图。我的 x 和 y 都是两个 (150,1) 数组。运行以下代码后:
plt.plot(x,y)
我得到的是: Line graph based on two numpy arrays
所以我很困惑。这些相连的线代表什么?我只想要一条穿过所有点的线。任何帮助将不胜感激!
<小时/>对于数据集,X 只是一个固定的 (150,1) numpy 数组,y 根据以下多项式函数计算:
def PolyCoefficients(x, coeffs):
""" Returns a polynomial for ``x`` values for the ``coeffs`` provided.
The coefficients must be in ascending order (``x**0`` to ``x**o``).
"""
o = len(coeffs)
y = []
for i in range(len(x)):
value = 0
for j in range(o):
value += coeffs[j]*x[i]**j
y.append(value)
return y
系数已经计算出来,我想要的只是一条穿过 (x,y) 的每个点的线
最佳答案
x
和 y
对代表图表上的点。使用 plt.plot(),您可以用一条线连接点。如果数组 x
不按顺序排列,那么您所拥有的就是一条在图形中前后移动的线。为了避免这种情况,您应该对 x
数组和 y
数组进行相应的排序。尝试使用:
new_x, new_y = zip(*sorted(zip(x, y)))
plt.plot(new_x,new_y)
关于python - 基于两个 numpy 数组和 matplotlib 创建的奇怪图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53441874/