파이썬(Python)/matplotlib

[Python] Sine파 그래프 그리기(Matplotlib, 여러개 사인파 한그래프 표기)

끄적끄적아무거나 2022. 10. 18. 18:57
반응형

 

목차

     

     

     

     

     

     

    파이썬 Sine파 그래프 그리기

     

    우선 파이썬의 Matplotlib으로 사인파형(Sinusoidal waveform)을 그리는 기본적인 코드에 대해 알아 보겠습니다. 설명은 아래 예제 코드로 진행하겠습니다.

     

    예제 코드>>

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(-np.pi,np.pi,100)
    y = np.sin(x)
    
    #그래프 설정
    fig = plt.figure()
    
    plt.plot(x,y, 'b-')
    plt.title('Sine Wave', color='b')
    
    plt.xlabel('X')
    plt.ylabel('Sin(x)')
    
    plt.grid()
    
    plt.axhline(y=0, color='k')
    plt.axvline(x=0, color='k')
    
    plt.show()

     

    4번 라인: x축에 넣을 값을 입력 합니다. numpy의 파이값(3.14)를 범위로 정하고 사이에 100개 값을 넣습니다.

    5번 라인: 넘파이(numpy)함수 sin를 사용해서 x값을 입력한 출력 값을 리턴합니다.

    8번 라인: 그래프 작석을 위해 pyplot으로 객체를 형석합니다. 

    10번 라인: 그래프를 그리기 위해 x 축, y축 값을 입력 하고 색은 파란색(blue)으로 설정 합니다.

    11~14번 라인: 축의 이름 및 그래프 이름을 설정합니다.

    16번 라인: 그리드를 사용해서 배경에 격자 선이 생기도록 합니다.

    18~19번 라인: 축에 대한 설정을 합니다.

     

     

    결과>>

     

     

     

     

     

     

    파이썬 Sine파 여러개(Multiple) 한 그래프에 넣기

    이번에는 앞서 하나의 사인파만을 그렸는데 Cos(코사인)이나 다른 크기(Amplitude), 위상(Phase)의 파형을 그리는 방법에 대해 알아보겠습니다. 

     

     

    예제 코드>>

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(-np.pi,np.pi,100)
    y0 = np.sin(x)
    y1 = 2*np.sin(x)
    y2 = np.sin(x+(np.pi/2))
    
    #그래프 설정
    fig = plt.figure()
    
    plt.plot(x,y0, 'r-', label='sin(x)')
    plt.plot(x,y1, 'g-', label='2sin(x)')
    plt.plot(x,y2, 'm-', label='sin(x+(np.pi/2))')
    
    plt.title('Sine Wave', color='b')
    plt.legend(loc='upper left')
    
    plt.xlabel('X')
    plt.ylabel('Sin(x)')
    
    plt.grid()
    
    plt.axhline(y=0, color='k')
    plt.axvline(x=0, color='k')
    
    plt.show()

    5~7번라인: 앞서 sine에 대한 그래프만 설정하였지만 이번에는 다양한 크기와 위상을 만들었습니다.

    12~14번 라인: label을 사용하고 다른 색을 사용합니다.

    17번 라인: label를 범례로 표기하기 위해 사용합니다.

     

     

    결과>>

     

     

    반응형