如何使Plt.plot在python中显示我的抛物线?

时间:2019-09-08 14:07:24

标签: python plot

也许这将是重复的,但是我找不到任何解决方案。 通常我编写的代码应该在python中显示一条曲线。但是使用此代码我看不到它。我的代码或pycharm有问题吗?此代码仅向我显示一个带有正确轴的空图形。

我确实在plt.plot(at [i],st,“ ro”)中添加了“ ro”。这向我显示了图表上的斑点,但我想看到完整的线条。


at = [0,1,2,3,4,5,6]

for i in range(len(at)):
    st = at[i]**2
    plt.plot(at[i], st)
plt.show()

4 个答案:

答案 0 :(得分:1)

这是通常的操作方式:

import numpy as np
import matplotlib.pyplot as plt                                                                                                                                                                                                                  
at = np.array([0,1,2,3,4,5,6])
at2 = at ** 2
plt.plot(at,at2)
plt.show()

您可以使用plt.plot(at,at2, c='red', marker='o')之类的东西来查看景点。

有关详细说明,请阅读文档。

答案 1 :(得分:0)

宁可在绘制之前完全计算要绘制的值。

at = [0,1,2,3,4,5,6]
y = [xi**2 for xi in at]

plt.plot(at, y)

或者使用函数替代

from math import pow

at = [0,1,2,3,4,5,6]

def parabolic(x):
    return [pow(xi,2) for xi in x]

plt.plot(at, parabolic(at))

都返回以下图: enter image description here

答案 2 :(得分:0)

首先生成两个列表,然后绘制图形:

at = [0,1,2,3,4,5,6]
st = [key**2 for key in at] 
plt.plot(at,st)

enter image description here

请注意,以这种方式在图形上的绘制顺序仅完成了一次,效率更高。

答案 3 :(得分:0)

其他答案可以解决您的问题,但请不要告诉您代码为什么不起作用。

之所以没有“看到任何东西”,是因为plt.plot(at[i], st)试图在您给的点之间画线。但是因为您只给了它单个值,所以它之间没有任何界限。结果,情节上什么都没出现

当您更改为呼叫plt.plot(at[i], st, 'ro')时,是在告诉它在点处绘制单个圆,而这些圆不会在点之间移动,因此会出现

其他答案显示了如何将多个值传递给plot,因此matplotlib可以在这些值之间画线。

您的一条评论说“它仍然不是抛物线的”,这是因为matplotlib不是符号绘图库。您只需为其提供数值,然后将其绘制到输出设备上。 sympy是用于进行符号计算的库,并支持绘图,例如:

from sympy import symbols, plot

x = symbols('x')

plot(x**2, (x, 0, 6))

为我做正确的事。当前版本(1.4)无法处理不连续性,但是在下一个版本中将为fixed