본문 바로가기
A. Development/Python

Matplotlib 사용 팁

by IMCOMKING 2018. 11. 27.


Jupyter에서 Matplotlib를 이용한 Dynamic plotting

거의 몇시간의 검색 끝에 working하는 예제를 찾을 수 있었다.
핵심은 %matplotlib notebook 을 쓴다는 것과, fig1.canvas.draw()를 호출해주는 것이었다.
그러나 이 방법의 한계는 매번 새로 drawing을 해서 속도가 느리다는 것이다.



그래서 아래의 방법으로 set_xdata를 사용하도록 수정해보았다.


%matplotlib notebook
import matplotlib.pyplot as plt

fig1 = plt.figure(figsize=(15,5))
ax1 = fig1.add_subplot(111)
ax1.set_xlabel('Time')
line1, = ax1.plot([], [])

def update_graph(t=0, width=5, gap=540, y_len=0.4):

W = (width*WIN_SIZE)//2
cur_i = t*WIN_SIZE

sample_rate = fs
y_len=0.7

data_1_plot = data_1[gap:]
data_2_plot = data_2[:-gap] if gap > 0 else output_data

data_1_plot = data_1_plot[cur_i-W : cur_i+W]
data_2_plot = data_2_plot[cur_i-W : cur_i+W]

time = np.linspace(0, len(data_1_plot) / fs, num=len(data_1_plot))

line1.set_xdata(time)
line1.set_ydata(data_1_plot-data_2_plot)
fig1.canvas.draw()






Matplotlib 에서 한글 font로 출력하기

1. 한글 폰트를 다운받고 압축을 푼다.

https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EB%82%98%EB%88%94%ED%8F%B0%ED%8A%B8_%EC%84%A4%EC%B9%98


2. 해당 경로로 matplotlib font를 설정해준다.
https://financedata.github.io/posts/matplotlib-hangul-for-osx.html



import matplotlib.font_manager as fm

font_list = font_manager.findSystemFonts(fontpaths='/nfs/user/DonghyunKwak_NFS/DonghyunKwak/NanumFont', fontext='ttf')

print(font_list)

fontprop = fm.FontProperties(fname=font_list[3], size=10)


plt.plot(label_data[:, start_idx+i])

plt.title(tmp.columns.values[-start_idx + i], fontproperties=fontprop)



'A. Development > Python' 카테고리의 다른 글

Python Function Result Caching by Joblib.Memory  (0) 2020.07.24
Python 프로그래밍  (0) 2014.06.17

댓글