프로그래밍/PyQt5 GUI

71. Finplot Candlestick PyQt에 그리기

디아블로 2021. 8. 18. 13:02

71-1 예제: ex70

import sys
import finplot as plt
import pyupbit as bit
from PyQt5.QtWidgets import QApplication, QGraphicsView, QVBoxLayout

plt.candle_bull_color = '#FF0000'
plt.candle_bull_body_color = '#FF0000'
plt.candle_bear_color = '#0000FF'

class MyApp(QGraphicsView):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        vbox = QVBoxLayout()
        self.setLayout(vbox)
        self.setWindowTitle("QGraphicsView")
        self.setGeometry(300, 300, 800, 600)
        self.show()

        plot = plt.create_plot(init_zoom_periods=100)
        self.axs = [plot]     # finplot requires this property
        vbox.addWidget(plot.vb.win)

        df = bit.get_ohlcv("KRW-BTC")
        df.rename(columns={'open': 'Open', 'high': 'High', 'low': 'Low', 'close': 'Close'}, inplace=True)
        plt.candlestick_ochl(df[['Open', 'Close', 'High', 'Low']])
        plt.show(qt_exec=False)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = MyApp()
    sys.exit(app.exec_())

71-2 결과