def createCandlestickChart(data): chart = QtCharts.QChart() chart.setTitle("Simple Candlestick Series example") chart.setAnimationOptions(QtCharts.QChart.SeriesAnimations) series1 = QtCharts.QCandlestickSeries() series1.setName("Acme") series1.setIncreasingColor(Qt.green) series1.setDecreasingColor(Qt.red) for x in data: category = float(x[0]) csSet = QtCharts.QCandlestickSet(category) csSet.setOpen(x[1]) csSet.setHigh(x[2]) csSet.setLow(x[3]) csSet.setClose(x[4]) series1.append(csSet) chart.addSeries(series1) chart.createDefaultAxes() axisX = QtCharts.QBarCategoryAxis() axisX.setCategories( [QDateTime.fromMSecsSinceEpoch(d[0]).toString("d") for d in data]) axisX.setTitleText("day") axisY = QtCharts.QValueAxis() axisY.setMax(chart.axisY().max() * 1.01) axisY.setMin(chart.axisY().min() * 0.99) chart.setAxisX(axisX, series1) chart.setAxisY(axisY, series1) chartView = QtCharts.QChartView(chart) chartView.setRenderHint(QPainter.Antialiasing) return chartView
data = readBoxWhiskersFile("acme_data.txt") chart = QtCharts.QChart() chart.setTitle("Simple Candlestick Series example") chart.setAnimationOptions(QtCharts.QChart.SeriesAnimations) series1 = QtCharts.QCandlestickSeries() series1.setName("Acme") series1.setIncreasingColor(Qt.green) series1.setDecreasingColor(Qt.red) for x in data: category = x[0] csSet = QtCharts.QCandlestickSet(category) csSet.setOpen(x[1]) csSet.setHigh(x[2]) csSet.setLow(x[3]) csSet.setClose(x[4]) series1.append(csSet) chart.addSeries(series1) chart.createDefaultAxes() axisX = QtCharts.QBarCategoryAxis() axisX.setCategories( [QDateTime.fromMSecsSinceEpoch(d[0]).toString("d") for d in data]) axisX.setTitleText("day")
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)