matplolib18 음수부호 표기가 잘 안되면? 이렇게 해결하자! 계측공학 문제를 파이썬 코드로 접근해서 풀려고 하다가 다음과 같은 문제가 생겼다. 일단 코드를 보면 이렇다. 이런 오류는 처음본다;ㄷㄷ;;찾아보니 Matplotlib이라는 패키지는 기본적으로 '-'(마이너스 부호)에 대한 표기에 있어서 제대로 출력되지 않는 고질적인 문제가 있다고 한다. 그래서 아래와 같은 오류를 종종 출력한다고 한다.UserWarning: Glyph 8722 (\N{MINUS SIGN}) missing from current font. 이럴 때에는 여느때처럼 matplotlib.pyplot를 임포트하고 나서 아래 코드를 추가하면 된다고 한다.plt.rcParams['axes.unicode_minus'] = False 나는 import구문 바로 아래에 아래와 같이 코드를 넣어주었다... matplolib/기본&입문 2024. 5. 18. 'figsize'라는 속성값을 써서 크기 조정하고 타이틀 겹침 문제를 해결하기 다음과 같이 삼각함수와 역삼각함수를 플롯에 도식화하는 코드와 결과가 있다. 코드> import matplotlib.pyplot as plt import numpy as np x = np.linspace(-np.pi, np.pi, 200) x2 = np.linspace(-1, 1, 200) fig, axes = plt.subplots(3,2) #2행 2열 axes[0][0].plot(x, np.sin(x)) axes[0][0].set_title('Sine_func()') axes[0][1].plot(x2, np.arcsin(x2)) axes[0][1].set_title('ArcSine_func()') axes[1][0].plot(x, np.cos(x)) axes[1][0].set_title('Cosine_.. matplolib/기본&입문 2023. 10. 10. yfinance를 이용하여 애플주식에 대한 차트를 그려보자! 일단 라이브러리 두개를 설치해야 한다. pip install matplotlib yfinance matplotlib: 차트그릴때 쓰는 용도 yfinance: 주식 데이터 가져올때 쓰는 용도 {yfinance로 반환된 결과는 dataframe의 형태를 띄고 있습니다. 데이터프레임과 관련된함수를 pandas에서 다양하게 지원하고 있기 때문에, yfinance를 자주 쓰게될 경우, 이에 맞는 데이터처리를 위해 pandas에 지원하는 함수도 어느정도 알고 있으면 도움이 될 것 같습니다:) } 코드> import yfinance as yf import matplotlib.pyplot as plt plt.rc('font', family='Malgun Gothic') #주식 데이터를 다운로드합니다. 예시로 애플(AA.. matplolib/함수그래프 2023. 9. 8. matplotlib에서 한글폰트가 깨지는 문제가 발생했을때, 한줄만 추가하자! 위와 같이 legend[범례]를 보면 사각형 모양이 뜨면서 깨져있는 것을 확인할 수 있다. 이는 해당 폰트를 찾지 못해서 발생하는 문제인데, 이를 해결하기 위해 다음 코드 한줄만 추가해주면 된다. plt.rc('font', family='Malgun Gothic') 그리고 matplotlib라이브러리안에 어떤 폰트들이 기본으로 내장되어 있는지, 즉 내장폰트들의 리스트를 확인해보고 싶다면 다음 코드를 복붙하여 돌려보면된다. import matplotlib.pyplot as plt # 가능한 font list 확인 import matplotlib.font_manager as fm f = [f.name for f in fm.fontManager.ttflist] print(f) # 확인 이후 plt.rc('fo.. matplolib/기본&입문 2023. 9. 7. 직렬 RLC회로에서 R값이 0으로 설정되었을때의 과제동응답의 전류/전압 그래프를 나타내보자! import numpy as np import matplotlib.pyplot as plt #회로 파라미터 R = 0 #저항값 C = 1e-6 #커패시턴스 값(F) L = 0.1 #인덕턴스 값(H) #시뮬레이션 파라미터 dt = 1e-6 #시간 간격(s) duration = 0.01 #시뮬레이션 기간 (s) #시간 범위 생성 t = np.arange(0, duration, dt) #입력 신호 생성 (에시로 단위 step 입력 사용) input_signal = np.ones_like(t) input_signal[t < duration/2] = 0 #초기 조건 설정 i_L = 0 #인덕턴스 전류 초기값 v_C = 0 #커패시턴스 전압 초기값 #시뮬레이션 결과 저장할 리스트 current = [] voltag.. matplolib/함수그래프 2023. 5. 30. x,y축 라벨에 대한 기타설정하기 y=2x꼴의 그래프를 그려본다고 하자. 이때 기본적으로 적을 수 있는 코드는 아래와 같을 것이다. import matplotlib.pyplot as plt # 샘플 데이터 생성 x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] # 그래프 그리기 plt.plot(x, y) # x축 라벨 설정 plt.xlabel('X-axis Label') # y축 라벨 설정 plt.ylabel('Y-axis Label') # 그래프 표시 plt.show() 하지만 여기서 한가지 불편한?점이 있다. 바로 y-라벨이 90도 회전되어 나온다는 것이다. (기본적으로 이렇게 되어 있으니, 살짝 불편하지만. 화면상의 공간효율을 위해 이걸 기본설정으로 해두었다고 생각하면, 그래도 수긍할만 하다) 이제 이 불편한.. matplolib/기본&입문 2023. 5. 27. DTFT예시코드 분석(2) 주파수 변화에 따른 선도(plot) 변화 [사전지식] DTFT는 주어진 이산시간 신호를 주파수 영역에서 연속적인 스펙트럼으로 변환한다. 변환된 주파수 영역에서는 신호의 주파수 성분이 표현되며, 이를 통해 신호의 주파수 특성과 주파수 성분의 세기 및 위상 정보를 추출할 수 있다. Def.) X(e^jw) = Sigma(from n=-infinity to n=+infinity) [ x[n] * e^(-jwn) ] X(e^jw): DTFT의 결과인 주파수 도메인 복소 스펙트럼 x[n]: 이산 시간 신호를 나타내는 시퀀스 e^(-jwn): 각각의 주파수 성분을 표현하는 복소지수함수 -변환은 변수 w에 대해 연속적으로 수행되며, 일반적으로 [-np.pi, +np.pi] 또는 [0, 2*np.pi] 범위에서 주파수를 표현한다. [실험내용] -numpy와 .. matplolib/신호및시스템 2023. 5. 27. DTFT예시코드 분석(1) 샘플링주파수 변화에 따른 선도(plot) 변화 [실험내용] -'np.arange'를 사용하여 0부터 1까지의 시간 벡터를 생성하고, 주파수가 10Hz인 사인파를 생성한다. -'np.fft.fft'를 사용하여 신호의 DTFT를 계산하고, 'np.fft.fftfreq'를 사용하여 주파수 축을 생성한다. -신호의 주파수는 10으로 고정하고, 샘플링주파수를 10으로 두어, 샘플간격을 0.1로 맞춘다. -'plt.plot'를 사용하여 DTFT 스펙트럼을 선도(plot)한다. import numpy as np import matplotlib.pyplot as plt #폰트 꺠짐 방지 plt.rcParams['font.family'] = 'Malgun Gothic' #특수문자(-) 깨짐 방지 plt.rcParams['axes.unicode_minus'] = Fa.. matplolib/신호및시스템 2023. 5. 27. 푸리에 변환에 대해 알아보자! 푸리에 변환이란? 푸리에 변환(Fourier Transform)은 시간영역에서 정의된 신호를 주파수 영역으로 변환하는 수학적인 변환기법입니다. 신호를 주파수 성분으로 분해하여, 주파수 대역별로 신호의 강도(진폭)와 위상정보를 얻을 수 있습니다. 이는 다양한 분야에서 신호 처리, 영상 처리, 통신, 음성 처리, 음악, 신호 분석등의 분야에서 널리 사용되고 있습니다. 푸리에 변환(줄여서 F.T)은 주파수 도메인에서 신호의 주파수 성분들을 분석하기 위해 사용됩니다. 주파수 도메인에서는 원래 신호를 구성하는 주파수 성분들의 진폭과 위상 정보를 알 수 있어, 신호의 주파수 특성을 자세히 분석할 수 있습니다. 이를 통해 다양한 신호 처리 작업을 수행할 수 있죠. 예를 들어보도록 하겠습니다. 푸리에 변환을 이용하여 .. matplolib/신호및시스템 2023. 4. 12. ReLU함수에 대해 알아보자! 이전 시간에 계단함수의 태생적인 문제점인, 미분이 불가능하다는 성질로 인해, 이를 대체할 함수를 두가지 설명했는데요! 바로, sigmoid함수와 ReLU함수입니다. 이번시간에는 ReLU함수에 대해 알아보도록 하겠습니다. 소스코드> import numpy as np import matplotlib.pyplot as plt def ReLU(x): return np.maximum(0,x) x = np.linspace(-10, 10, 1000) y = ReLU(x) plt.plot(x, y) plt.title('ReLU function') plt.xlabel('x') plt.ylabel('y') plt.show() 위 코드를 실행했을때, -10부터 10까지의 범위에서 1000개의 점으 생성하고, 이점에 대해 R.. matplolib/신호및시스템 2023. 3. 24. sigmoid(시그모이드)함수에 대해 알아보자! 이전 시간에 단위계단함수를 정리해보았는데요! 한번 더 복습을 하자면, 이 함수는 입력신호 0을 기준으로 출력신호 0또는1로 분류하는 함수로서, 입력값이 특정값 이상인 경우 1을 출력하고, 그렇지 않은 경우, 0을 출력합니다. 하지만 이 계단함수는 신호해석에만 조금 사용되지 머신러닝 분야에서는 거의 쓰이지 않는데요, 머신러닝에서 미분이 중요하게 다뤄지는데, 이 계단함수를 연속적인 함수가 아니기 때문에, 태생적으로 미분이 불가능하기 때문이죠. 그러나! 계단함수와 유사한 함수들이 존재하는데요, 대표적으로 sigmoid함수와 ReLU함수입니다. 이 함수들은 계단함수와같이 입력을 기준으로 출력을 분류하는 특성을 가지고 있으면서도, 미분이 가능한 함수들이기 때문에, 머신러닝에서 널리 쓰이는 함수들입니다. 그래서 이.. matplolib/신호및시스템 2023. 3. 24. 단위계단함수에 대해 알아보자! 단위계단함수란? 단위계단함수는 계단함수의 일종으로, 0보다 작은 값에 대해서는, 0을, 0보다 큰 값에 대해서는 1을 출력하는 함수입니다. 아래는 파이썬 코드로 단위계단함수를 구현한 예시입니다. 아래 코드에서는 'numpy'와 'matplotlib' 라이브러리를 사용하였습니다. 'numpy'는 수학적 계산을 위해, 'matplotlib'는 수학계산을 토대로 그래프를 그리기 위해 사용됩니다. 소스코드> import numpy as np import matplotlib.pyplot as plt def unit_step_function(x): return np.where(x>0, 1, 0) x = np.linspace(-5.0, 5.0, 1000) y = unit_step_function(x) plt.plot.. matplolib/신호및시스템 2023. 3. 24. 이전 1 2 다음