def blankGraphicsWidget(cls, alignment="horizontal", num_rows=1, init_zoom_periods=120): # fplt configuration. fplt.max_zoom_points = 5 fplt.foreground = '#fff' # darkmode fplt.background = '#333' fplt.display_timezone = gettz('GMT') # time error fix. # Qt: to return Graphicsview graphics_view = QGraphicsView() if alignment == "horizontal": hbox = QHBoxLayout() else: hbox = QVBoxLayout() w = fplt.create_plot_widget(graphics_view.window(), rows=num_rows, init_zoom_periods=init_zoom_periods) list_axs = [] if num_rows == 1: list_axs = [w] else: for i in w: list_axs.append(i) for i in list_axs: hbox.addWidget(i.ax_widget) i.set_visible(crosshair=True, xaxis=True, yaxis=True, xgrid=True, ygrid=True) graphics_view.window().axs = list_axs # finplot requres this property graphics_view.setLayout(hbox) return (graphics_view, w) # graphics view, list of ax
def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) uic.loadUi('chart.ui', self) self.initConnections() pg.setConfigOptions(foreground=finplot.foreground, background=finplot.background) fp = finplot.FinWindow(title="chart") self.ax = finplot.create_plot_widget(fp, init_zoom_periods=100) fp.ci.addItem(self.ax, row=0, col=0) fp.show_maximized = True self.plotWidget.setMaximumHeight(0) self.plotWidget.axs = [self.ax] # finplot requires this property self.verticalLayout.addWidget(fp) self.dayDateEdit.setDate(datetime.date.today()) self.priceLine = None self.stopPriceLine = None self.candleItems = None self.df = None self.filename = None self.isFileFirstOpen = True self.hoverLabel = finplot.add_legend('', ax=self.ax) finplot.set_time_inspector(self.update_legend_text, ax=self.ax, when='hover') finplot.display_timezone = gettz('America/New_York')
layout = QGridLayout() win.setLayout(layout) win.resize(600, 500) combo = QComboBox() combo.setEditable(True) [ combo.addItem(i) for i in 'AMRK FB GFN REVG TSLA TWTR WMT CT=F GC=F ^FTSE ^N225 EURUSD=X ETH-USD'. split() ] layout.addWidget(combo, 0, 0, 1, 1) info = QLabel() layout.addWidget(info, 0, 1, 1, 1) ax = fplt.create_plot_widget(win, init_zoom_periods=100) win.axs = [ax] # finplot requres this property layout.addWidget(ax.ax_widget, 1, 0, 1, 2) @lru_cache(maxsize=15) def download(symbol): return yf.download(symbol, '2019-01-01') @lru_cache(maxsize=100) def get_name(symbol): return yf.Ticker(symbol).info['shortName'] plots = []
# Create example charts combo = QComboBox() combo.setEditable(True) [ combo.addItem(i) for i in "AMRK FB GFN REVG TSLA TWTR WMT CT=F GC=F ^FTSE ^N225 EURUSD=X ETH-USD". split() ] dock_0.addWidget(combo, 0, 0, 1, 1) info = QLabel() dock_0.addWidget(info, 0, 1, 1, 1) # Chart for dock_0 ax0, ax1, ax2 = fplt.create_plot_widget(master=area, rows=3, init_zoom_periods=100) area.axs = [ax0, ax1, ax2] dock_0.addWidget(ax0.ax_widget, 1, 0, 1, 2) dock_1.addWidget(ax1.ax_widget, 1, 0, 1, 2) dock_2.addWidget(ax2.ax_widget, 1, 0, 1, 2) # Link x-axis ax1.setXLink(ax0) ax2.setXLink(ax0) win.axs = [ax0] @lru_cache(maxsize=15) def download(symbol): return yf.download(symbol, "2019-01-01")