I am wondering about embedding a plot widget about candlestick chart in pyqt5. The following python codes are for ploting candlestick chart and when it is under the main program, the chart is being plotted in main window. it were under the main program that I could not attach, because it has several essential sub modules. I am sorry. for organizing the codes, I separated following codes as another python program module and it makes new chart indepandently. The purpose is updating chart. Would you please advise me how can I modify the codes?
import traceback
from PyQt5.QtWidgets import *
from PyQt5.QtCore import pyqtSignal, QObject
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
import mplfinance as mpf
import matplotlib
matplotlib.use('Qt5Agg')
class ChartWidget(QWidget):
canvas_signal = pyqtSignal(FigureCanvas)
def __init__(self, parent=None):
super().__init__(parent)
self.layout = QVBoxLayout()
self.canvas = FigureCanvas(Figure(figsize=(6, 6), dpi=100))
self.canvas = FigureCanvas()
self.layout.addWidget(self.canvas)
def update_chart(self, chart_df):
try:
self.canvas.figure.clear()
ax1 = self.canvas.figure.add_subplot(111)
mpf.plot(chart_df,
type='candle',
volume=True,
style='yahoo',
)
self.canvas.figure.tight_layout()
self.canvas.draw()
self.canvas_signal.emit(self.canvas)
except Exception as e:
traceback.print_exc()
print(e)