我试图在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
答案 0 :(得分:6)
这是你的方法,尽可能少的改变使它工作(因为很明显你是一个初学者,这是一个学习练习)。我所做的改变是:
将plt.figure
和其他绘图语句移出循环。循环现在为您提供要绘制的数据,然后在循环结束后绘制它。
将x^2
更改为x**2
。
在主循环控制语句中将while
更改为for
。
注释掉了一些没有做任何事情的行。它们都有相同的错误来源(或非实用的,真的):在for循环中,x
在循环控制行中设置,然后y
直接计算,所以你不要#39} ; t需要给它们初始值或增加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()
答案 1 :(得分:3)
这应该做:
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)
答案 2 :(得分:0)
将您的第三行调整到最后一行:
axes.plot(a,b, 'r-^')
添加' r-^
'将向图表添加红色三角形点。或者,您可以使用' b-o
'。
注意:您应该包含引号。
对于不同的颜色,您可以使用' b' - 蓝色; '克' - 绿色; ' R' - 红色; ' C' - 青色; '米' - 洋红色; ' Y' - 黄色; ' K' - 黑色; ' W' - 白色
- ' r-^
'或者' b-o
'将创建分别连接三角形或圆形的线。也就是说,如果没有破折号,你最终会得到散点图。
或者,有一个命令.... scatter(x,y)
,它等同于r ^
'和' b o
'
答案 3 :(得分:0)
您好,我认为您可以使用此
import matplotlib.pyplot as plt
import numpy as np
'''
Set the values in the variable x
The function arange helps to generate an array with the
following parameters arange(start,end,increment)
'''
x = np.arange(-100,100,1)
'''
Now set the formula in the variable y
'''
y = x**2
'''
Then add the pair (x,y) to the plot
'''
plt.plot(x,y)
'''
Finally show the graph
'''
plt.show()