ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬을 이용한 사인 그래프 그리기 - Generating a Synthetic Sine Wave with Python
    PROGRAMMING/Python 2017. 3. 21. 08:44
    반응형
    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib
    
    
    # properties
    SIG_AMPLITUDE = 10
    SIG_OFFSET = 2
    SIG_PERIOD = 100
    NOISE_AMPLITUDE = 3
    N_SAMPLES = 5 * SIG_PERIOD
    INSTRUMENT_RANGE = 9
    
    # construct a sine wave
    times = np.arange(N_SAMPLES).astype(float)
    signal = SIG_AMPLITUDE * np.sin(2 * np.pi * times / SIG_PERIOD) + SIG_OFFSET
    
    # and mix it with some random noise
    noise = NOISE_AMPLITUDE * np.random.normal(size=N_SAMPLES)
    signal += noise
    
    # trucate spikes that are outside of the instrument range
    # (cut the noise)
    signal[signal > INSTRUMENT_RANGE] = INSTRUMENT_RANGE
    signal[signal < -INSTRUMENT_RANGE] = -INSTRUMENT_RANGE
    
    matplotlib.style.use("ggplot")
    # plot(x,y)
    plt.plot(times, signal)
    plt.title("Synthetic sine wave signal")
    plt.xlabel("Time")
    plt.ylabel("Signal + noise")
    plt.ylim(ymin = -SIG_AMPLITUDE, ymax = SIG_AMPLITUDE)
    
    # Save the plot
    plt.savefig("signal.pdf")

    numpy와 matplotlib 라이브러리를 이용한 (별도 라이브러리 설치 필요) 노이즈가 있는 synthetic sine wave.

    간단하게 설명하자면 numpy는 수를 다를 수 있는 유용한 함수들을 가지고 있는 library이고,

    matplotlib은 그래프를 파일로 저장할 수 있는 library이다.

    위의 함수를 실행하면 다음과 같은 사인 그래프를 얻을 수 있다.

     

     

    노이즈를 없앤 예쁜 사인 그래프.

     

     

    참고 서적:

    Data Science Essentials in Python, Dmitry Zinoviev, The Progmatic Programmers, 2016

     

    반응형

    댓글

Written by Emily.