From aa711cdee8bc09d84bd2d7f172b71b9ac7f31d94 Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Thu, 25 Apr 2019 19:13:24 -0400 Subject: [PATCH] Blind stab at a basic chart --- piker/ui/qt/stackof_candle.py | 67 +++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 piker/ui/qt/stackof_candle.py diff --git a/piker/ui/qt/stackof_candle.py b/piker/ui/qt/stackof_candle.py new file mode 100644 index 00000000..0bcd37e4 --- /dev/null +++ b/piker/ui/qt/stackof_candle.py @@ -0,0 +1,67 @@ +import sys + +from PySide2.QtCharts import QtCharts +from PySide2.QtWidgets import QApplication, QMainWindow +from PySide2.QtCore import Qt, QPointF +from PySide2 import QtGui +import qdarkstyle + +data = ((1, 7380, 7520, 7380, 7510, 7324), + (2, 7520, 7580, 7410, 7440, 7372), + (3, 7440, 7650, 7310, 7520, 7434), + (4, 7450, 7640, 7450, 7550, 7480), + (5, 7510, 7590, 7460, 7490, 7502), + (6, 7500, 7590, 7480, 7560, 7512), + (7, 7560, 7830, 7540, 7800, 7584)) + + +app = QApplication([]) +# set dark stylesheet +# import pdb; pdb.set_trace() +app.setStyleSheet(qdarkstyle.load_stylesheet_pyside()) + +series = QtCharts.QCandlestickSeries() +series.setDecreasingColor(Qt.darkRed) +series.setIncreasingColor(Qt.darkGreen) + +ma5 = QtCharts.QLineSeries() # 5-days average data line +tm = [] # stores str type data + +# in a loop, series and ma5 append corresponding data +for num, o, h, l, c, m in data: + candle = QtCharts.QCandlestickSet(o, h, l, c) + series.append(candle) + ma5.append(QPointF(num, m)) + tm.append(str(num)) + +pen = candle.pen() +# import pdb; pdb.set_trace() + +chart = QtCharts.QChart() + +# import pdb; pdb.set_trace() +series.setBodyOutlineVisible(False) +series.setCapsVisible(False) +# brush = QtGui.QBrush() +# brush.setColor(Qt.green) +# series.setBrush(brush) +chart.addSeries(series) # candle +chart.addSeries(ma5) # ma5 line + +chart.setAnimationOptions(QtCharts.QChart.SeriesAnimations) +chart.createDefaultAxes() +chart.legend().hide() + +chart.axisX(series).setCategories(tm) +chart.axisX(ma5).setVisible(False) + +view = QtCharts.QChartView(chart) +view.chart().setTheme(QtCharts.QChart.ChartTheme.ChartThemeDark) +view.setRubberBand(QtCharts.QChartView.HorizontalRubberBand) +# chartview.chart().setTheme(QtCharts.QChart.ChartTheme.ChartThemeBlueCerulean) + +ui = QMainWindow() +# ui.setGeometry(50, 50, 500, 300) +ui.setCentralWidget(view) +ui.show() +sys.exit(app.exec_())