챠트와 관련된 라이브러리 설치하기
pip install -U matplotlib
pip install -U mpl_finance
pip install -U mplfinance
import datetime import numpy as np import FinanceDataReader as fdr import matplotlib as mpl import matplotlib.pyplot as plt import matplotlib.font_manager as fm import matplotlib.gridspec as gridspec # import mplfinance as mpf # 셀트리온, 2020년 df_068270 = fdr.DataReader("068270", "2020") df_068270 = df_068270.loc[:, ["Open", "High", "Low", "Close", "Volume"]] # 시가, 고가, 저가, 종가, 거래량 # mc = mpf.make_marketcolors(up="r", down="b") # s = mpf.make_mpf_style(base_mpf_style='starsandstripes', marketcolors=mc) # mpf.plot(fdf, type='candle', style=s, title="KKPC") # mpl.rcParams['axes.unicode_minus'] = False # 그래프에서 마이너스 폰트 깨지는 문제 해결 # print ('버전: ', mpl.__version__) # print ('설치 위치: ', mpl.__file__) # print ('설정 위치: ', mpl.get_configdir()) # print ('캐시 위치: ', mpl.get_cachedir()) # font_list = fm.findSystemFonts(fontpaths=None, fontext='ttf') # print(len(font_list)) # 폰트 전체 갯수 # font_list_window = fm.win32InstalledFonts() # print(len(font_list_window)) # Window의 설치된 폰트 갯수 # for font in font_list[:len(font_list_window)]: # print(font) # f = [f.name for f in fm.fontManager.ttflist] # print(f) # print([(f.name, f.fname) for f in fm.fontManager.ttflist if 'Malgun Gothic' in f.name]) path = 'C:\\Windows\\Fonts\\malgun.ttf' fontprop = fm.FontProperties(fname=path, size=12) # fig = plt.figure(figsize=(8, 5)) # fig.set_facecolor('w') gs = gridspec.GridSpec(2, 1, height_ratios=[3, 1]) axes = [] axes.append(plt.subplot(gs[0])) plt.title('셀트리온', fontproperties=fontprop) plt.ylabel('주식가격', fontproperties=fontprop) axes.append(plt.subplot(gs[1], sharex=axes[0])) plt.xlabel('날짜', fontproperties=fontprop) axes[0].get_xaxis().set_visible(False) x = np.arange(len(df_068270.index)) _xticks = [] _xlabels = [] _wd_prev = 0 for _x, d in zip(x, list(df_068270.index)): print(str(d)) weekday = datetime.datetime.strptime(str(d), '%Y-%m-%d %H:%M:%S').weekday() if weekday <= _wd_prev: _xticks.append(_x) _xlabels.append(datetime.datetime.strptime(str(d), '%Y-%m-%d %H:%M:%S').strftime('%m/%d')) _wd_prev = weekday axes[1].set_xticks(_xticks) axes[1].set_xticklabels(_xlabels, rotation=45, minor=False) axes[0].plot(x, df_068270.Open) axes[1].bar(x, df_068270.Volume) plt.tight_layout() plt.show() |
'프로그래밍 > PyQt5 GUI' 카테고리의 다른 글
64. PyQtGraph 그래프 두 개 그리기 (0) | 2021.08.13 |
---|---|
63. PyQtGraph 기본 그래프 그리기 (0) | 2021.08.12 |
61. 주식 데이터 (0) | 2021.08.12 |
60. 멀티스레딩 (0) | 2021.08.10 |
59. 이벤트 루프 (0) | 2021.08.10 |