2016-02-15 148 views
-2

如何使用此功能构建图形?谢谢! :)我试过,但我越来越糊涂了我应该怎么使用:https://stackoverflow.com/questions/30553585/graphing-a-parabola-using-matplotlib-in-python#=Python使用Matplotlib绘制抛物线图

def quadratic (a, b, c): 
try: 
    d = b**2-4*a*c 
    convex_point = -b/(2*a) 
    if(d == 0): 
     convex_point = -b/(2*a) #it is the x-interceptor when det is 0 
     print('the convex point is at',convex_point, 'on the x-axis | the parabola intersect the y-axis at',c, '| the determinant is 0'); 
    elif(d < 0): 
     print('Determinant is', d,'and if determinant is smaller than zero, there is no real solution'); 
    else: 
     x_positive = (-b+ math.sqrt(d))/(2*a); # y = 0 
     x_negative = (-b- math.sqrt(d))/(2*a); # y = 0 
     print('the convex points is at',convex_point, 'on the x-axis |x_positive',x_positive,' |x_negative',x_negative,'| the parabola intersect the y-axis at',c) 


except: 
    print('try: import math'); 

回答

0
def quadratic (a, b, c): 
try: 
    import matplotlib.pyplot as plt 
    import math 
    import numpy as np 
    d = b**2-4*a*c 
    convex_point = -b/(2*a) 
    x = np.linspace(-50, 50, 1000); 
    y = a**2 + b*x + c 
    fig, ax = plt.subplots(); 
    ax.plot(x, y) 
    if(d == 0): 
     convex_point = -b/(2*a) #it is the x-interceptor when det is 0 
     print('the convex point is at',convex_point, 'on the x-axis | the parabola intersect the y-axis at',c, '| the determinant is 0'); 
    elif(d < 0): 
     print('Determinant is', d,'and if determinant is smaller than zero, there is no real solution'); 
    else: 
     x_positive = (-b+ math.sqrt(d))/(2*a); # y = 0 
     x_negative = (-b- math.sqrt(d))/(2*a); # y = 0 
     print('the convex points is at',convex_point, 'on the x-axis |x_positive',x_positive,' |x_negative',x_negative,'| the parabola intersect the y-axis at',c); 



except: 
    print('try: import math') 

只是它不显示图形:S

+1

尝试在你的'ax.plot'行后面添加一个'plt.show()' – tom

+0

我试过了,但是它给我带来了一个异常,当我删除它时,它又恢复了。 – Francesco

+0

它抛出了什么错误? – tom

0
def quadratic (a, b, c): 
try: 
    import matplotlib.pyplot as plt 
    import math 
    import numpy as np 
    d = b**2-4*a*c 
    convex_point = -b/(2*a) 
    x = np.linspace(-10, 10, 1000); 
    y = a**2 + b*x + c 
    fig, ax = plt.subplots(); 
    ax.plot(x, y); 
    plt.show() 
    if(d == 0): 
     convex_point = -b/(2*a) #it is the x-interceptor when det is 0 
     print('the convex point is at',convex_point, 'on the x-axis | the parabola intersect the y-axis at',c, '| the determinant is 0'); 
    elif(d < 0): 
     print('Determinant is', d,'and if determinant is smaller than zero, there is no real solution'); 
    else: 
     x_positive = (-b+ math.sqrt(d))/(2*a); # y = 0 
     x_negative = (-b- math.sqrt(d))/(2*a); # y = 0 
     print('the convex points is at',convex_point, 'on the x-axis |x_positive',x_positive,' |x_negative',x_negative,'| the parabola intersect the y-axis at',c); 
except: 
    print('try: import math') 

此代码工作:)