2015-09-26 26 views
0

如何在同一窗口中清晰地繪製三條線?另外我還希望能夠使這些線條點綴起來。在同一個窗口中清晰地繪製三條線,並使點線?

這是我到目前爲止有:

# -*- coding: utf-8 -*- 
import matplotlib.pyplot as plt 
import numpy as np 
import math 
# opgave 4 
def f_opgave4 (x): 
    return x**x 

def area_under(f, a, b, N): 
    return (b-a)/N * (sum ([f_opgave4(a + (b-a)*k/N) for k in range(1,N)])) 

print area_under(f_opgave4, 0.0, 1.0, 100000) 

# opgave 5 
def f_opgave5(x): 
    return math.sin(x) 

def area_under(f, a, b, N): 
    return (b-a)/N * (sum ([f_opgave5(a + (b-a)*k/N) for k in range(1,N)])) 

    print area_under(f_opgave5, 0.1, 2.0 , 100000) 

    # opgave 6 
    def f(x): 
     return math.sin(x**2) 

    def area_under(f, a, b, N): 
     return (b-a)/N * (sum ([f(a + (b-a)*k/N) for k in range(1,N)])) 

    print area_under(f, 0.0, math.pi , 100000) 

    # nu laten we tekenen 
    x_all = [] 
    y_opgave4 = [] 
    y_opgave5 = [] 
    y_opgave6 = [] 
    for x in np.arange(-10,10,0.01): 
     y4 = f_opgave4(x) 
     y5 = f_opgave5(x) 
     y6 = f(x) 
    x_all.append(x) 
    y_opgave4.append(y4) 
    y_opgave5.append(y5) 
     y_opgave6.append(y6) 
    plt.plot(x_all, y_opgave4, 'g-') 
    plt.show() 
    plt.plot(x_all, y_opgave5, 'r-') 
    plt.show() 
    plt.plot(x_all, y_opgave6, 'b-') 
    plt.show() 
+0

的問題,我不能在畫y_opgave4相同的窗口 – max

回答

0
plt.plot(x_all, y_opgave4, 'ro', x_all, y_opgave5, 'bo', x_all, y_opgave6, 'go') 
plt.show() 
+0

謝謝galaxyan 這是有益的和明確的 – max

+0

@最大,如果你喜歡它,PLZ接受它。 – galaxyan

+0

我需要在同一窗口中繪製所有功能 現在的每件事情都很好,但我得到了錯誤(double_scalars) ,但我不能使用相同的x範圍值或所有f,我有 如果你試過我的意思是一個x列表),圖形將不清晰,因爲(c^x)提高得太快,並且會使y軸變大,並且作爲結果,其他f函數將顯示爲直線 – max

0

哈利路亞 謝謝計算器 是壓軸代碼 但我仍然有一個問題 我需要繪製的所有功能在同窗口 現在,每件事情都很好,但我得到錯誤(double_scalars) ,但我不能使用相同的x範圍值或所有f,我有 如果你試過(我的意思是一個x列表)的想法,圖形將不可以牛逼清楚,因爲(C^x)的提出如此之快,這將讓y軸到大,並作爲結果其他f函數將顯示爲直線

# -*- coding: utf-8 -*- 
import matplotlib.pyplot as plt 
import numpy as np 
import math 
    # opgave 4 
def f_opgave4 (x): 
    return x**x 

    def opp_under(f, a, b, N): 
    return (b-a)/N * (sum ([f_opgave4(a + (b-a)*k/N) for k in range(1,N)])) 

print opp_under(f_opgave4, 0.0, 1.0, 100000) 

# opgave 5 
def f_opgave5(x): 
    return math.sin(x) 

def areaa_under(f, a, b, N): 
    return (b-a)/N * (sum ([abs(f_opgave5(a + (b-a)*k/N)) for k in range(1,N)])) 

    print areaa_under(f_opgave5, 0.1, 2.0 , 100000) 

# opgave 6 
def f(x): 
     return math.sin(x**2) 

def area_under(f, a, b, N): 
    return (b-a)/N * (sum ([abs(f_opgave5(a + (b-a)*k/N)) for k in range(1,N)])) 

print area_under(f, 0.0, math.pi , 100000) 

# nu laten we tekenen 
    x1_all = [] 
y_opgave4 = [] 
for x in np.arange(-2,2,0.01): 
    y4 = f_opgave4(x) 
     x1_all.append(x) 
    y_opgave4.append(y4) 

plt.plot(x1_all, y_opgave4, 'r') 

x2_all = [] 
y_opgave5 = [] 
y_opgave6 = [] 
    for x in np.arange(-4,4,0.01): 
    y5 = f_opgave5(x) 
    y6 = f(x) 
    x2_all.append(x) 
     y_opgave5.append(y5) 
    y_opgave6.append(y6) 

plt.plot(x2_all, y_opgave5, 'b', x2_all, y_opgave6, 'g') 

plt.axvline(x=0.,color='k',ls='dashed') 
plt.axhline(y=0.,color='k',ls='dashed') 
for line in [0,0.1,2,math.pi]: 
     plt.axvline(x=line ,color='y',ls='dashed') 
plt.text(2, 3.5, " $f(x)=x^x$ ", color = 'red', fontsize = 20) 
plt.text(1.2, 1.2, " $f(x)= sin(x)$ ", color = 'blue', fontsize = 20) 
plt.text(-3.8, 1.5, " $f(x)=sin(x^2)$ ", color = 'green', fontsize = 20) 
    plt.show()