아핫뉴스실시간 인기검색어
아핫뉴스 화산 이미지
아하

생활

생활꿀팁

뛰어난안경곰21
뛰어난안경곰21

파이썬 mplfinance로 그린 차트를 pyqt5로 만든 윈도우에 삽입하고 싶습니다.

Matplotlib으로 작성한 차트는 pyqt5로 제작한 원도우에 쉽게 넣을 수 있었는데요,

nplfinance로 그린 주식 차트를 윈도우에 삽입하는게 쉽지 않네요.

파일 실행 시 팝업으로 주식차트가 뜨는거 말고, 시작부터 윈도우에 삽입이 되어 있었으면 좋겠습니다. 버튼들과 함께 구성해서 차트 보는 프로그램을 만들려고 합니다.

참고할만한 좋은 사이트나 예제 코드가 있으면 부탁드립니다. 감사합니다.

    55글자 더 채워주세요.
    1개의 답변이 있어요!
    • 꾸준한하마55
      꾸준한하마55

      참고 1 : http://www.gisdeveloper.co.kr/?p=8343

      참고 2 : https://chancoding.tistory.com/111

      참고 3 : https://m.blog.naver.com/townpharm/220950438948

      [예제용 소스코드]

      # -- coding: utf-8 --

      """

      Created on Mon May 10 14:06:39 2021

      @author: raven90

      """

      import sys

      import numpy as np

      from PyQt5.QtWidgets import *

      from mplfinance import candlestick2ohlc

      import matplotlib.ticker as ticker

      import matplotlib.pyplot as plt

      from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas

      import pandas as pd

      from pandas_datareader import data

      from datetime import datetime

      #app = QApplication(sys.argv)

      #win = QWidget()

      #win.show()

      #app.exec_()

      class MyWindow(QWidget):

      def init(self):

      super().init()

      self.initUI()

      self.setLayout(self.layout)

      self.setGeometry(200, 200, 800, 600)

      def initUI(self):

      self.fig = plt.Figure()

      self.canvas = FigureCanvas(self.fig)

      layout = QVBoxLayout()

      layout.addWidget(self.canvas)

      self.layout = layout

      self.doGraph1()

      def doGraph1(self):

      # 데이터를 가져올 날짜 설정

      start_date = datetime(2020,5,8)

      end_date = datetime(2020,10,8)

      # 야후에서 코스피 데이터 가져오기

      kospidf = data.getdatayahoo("^KS11", startdate, end_date)

      display(kospi_df.head(5))

      # 지수 이동평균선 데이터 구하기

      kospidf['MA3'] = kospidf['Close'].rolling(3).mean()

      kospidf['MA5'] = kospidf['Close'].rolling(5).mean()

      kospidf['MA10'] = kospidf['Close'].rolling(10).mean()

      kospidf['MA20'] = kospidf['Close'].rolling(20).mean()

      display(kospi_df.head(5))

      self.fig.clear()

      # 그래프 그리기

      #self.fig, ax = plt.subplots(figsize=(10,5))

      ax = self.fig.add_subplot(1, 1, 1)

      ax.set_title('KOSPI INDEX', fontsize=15)

      ax.set_ylabel("KOSPI")

      ax.set_xlabel("Date Time")

      ax.plot(kospidf.index, kospidf[['Close','MA5','MA10']])

      ax.legend(['Close','MA5','MA10'])

      #plt.show()

      self.canvas.draw()

      if name == "main":

      app = QApplication(sys.argv)

      window = MyWindow()

      window.show()

      app.exec_()

      [실행결과 캡쳐]