Graphing a Parabola using Matplotlib in Python
Solution 1:
This should do:
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)
Solution 2:
This is your approach with as few changes as possible to make it work (because it's clear that you're a beginner and this is a learning exercise). The changes I made were:
Moved the
plt.figure
, and other plotting statements out of the loop. The loop now gives you the data to plot, and then you plot it once the loop is finished.Changed
x^2
tox**2
.Changed
while
tofor
in your main loop control statement.Commented out a few lines that weren't doing anything. They all had the same source of error (or non-utility, really): in the for loop,
x
is set in the loop control line and theny
is calculated directly, so you don't need to give them initial values or incrementx
, though you would have had to do these steps for a while loop.
Here the code:
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()
Solution 3:
Hi there I think that you can use this
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()
Solution 4:
Adjust your third to last line to:
axes.plot(a,b, 'r-^')
Adding the 'r-^
' will add red triangular points to the graph. Alternatively, you can use 'b-o
'.
Note: You should include the quotes.
For different colors you can use 'b' - blue; 'g' - green; 'r' - red; 'c' - cyan; 'm' - magenta; 'y' - yellow; 'k' - black; 'w' - white
The - in the 'r-^
' or 'b-o
' will create the line joining the triangles or circles respectively. That is, without the dash, you will end up with a scatter plot.
Alternatively, there is command ....scatter(x,y)
which would be equivalent to 'r ^
' and 'b o
'