아핫뉴스실시간 인기검색어
아핫뉴스 화산 이미지
화산 아이콘 11
바빌론 랩스 비트코인 협력
아하

생활

생활꿀팁

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

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

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

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

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

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

    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_()

      [실행결과 캡쳐]