使用Python中的Matplotlib绘制抛物线图

kma*_*n29 6 python matplotlib python-2.7

我试图绘制一个简单的抛物线matplotlib,我很困惑,我应该如何在抛物线上绘制点.到目前为止,这就是我所拥有的:

import matplotlib.pyplot as plt
a=[]
b=[]
y=0
x=-50
while x in range(-50,50,1):
    y=x^2+2*x+2
    a=[x]
    b=[y]
    fig= plt.figure()
    axes=fig.add_subplot(111)
    axes.plot(a,b)
    plt.show()
    x= x+1
Run Code Online (Sandbox Code Playgroud)

tom*_*m10 7

这是你的方法,尽可能少的改变使它工作(因为很明显你是一个初学者,这是一个学习练习).我所做的改变是:

  1. plt.figure其他绘图语句移出循环.循环现在为您提供要绘制的数据,然后在循环结束后绘制它.

  2. x^2x**2.

  3. 在主循环控制语句中更改whilefor.

  4. 注释掉了一些没有做任何事情的行.它们都有相同的错误源(或非实用的,真的):在for循环中,x在循环控制行中设置然后y直接计算,所以你不需要给它们初始值或增量x,虽然你将不得不为while循环执行这些步骤.

在此输入图像描述

这里的代码:

import matplotlib.pyplot as plt

a=[]
b=[]
# y=0
# x=-50

for x in range(-50,50,1):
    y=x**2+2*x+2
    a.append(x)
    b.append(y)
    #x= x+1

fig= plt.figure()
axes=fig.add_subplot(111)
axes.plot(a,b)
plt.show()
Run Code Online (Sandbox Code Playgroud)


cel*_*cel 5

应该这样做:

import matplotlib.pyplot as plt
import numpy as np

# create 1000 equally spaced points between -10 and 10
x = np.linspace(-10, 10, 1000)

# calculate the y value for each element of the x vector
y = x**2 + 2*x + 2  

fig, ax = plt.subplots()
ax.plot(x, y)
Run Code Online (Sandbox Code Playgroud)

放大图