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. 한글 폰트를 다운받고 압축을 푼다.
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 |
댓글