def createBarChart(self): chart = QtCharts.QChart() chart.setTitle("Bar chart") series = QtCharts.QStackedBarSeries(chart) for i in range(len(self.data_table)): barset = QtCharts.QBarSet("Bar set {}".format(i)) for data in self.data_table[i]: barset.append(data[0].y()) series.append(barset) chart.addSeries(series) chart.createDefaultAxes() chart.axisY().setRange(0, self.value_max * 2) # Add space to label to add space between labels and axis chart.axisY().setLabelFormat("%.1f ") return chart
def __init__(self): QMainWindow.__init__(self) low = QtCharts.QBarSet("Min") high = QtCharts.QBarSet("Max") low.append([-52, -50, -45.3, -37.0, -25.6, -8.0, -6.0, -11.8, -19.7, -32.8, -43.0, -48.0]) high.append([11.9, 12.8, 18.5, 26.5, 32.0, 34.8, 38.2, 34.8, 29.8, 20.4, 15.1, 11.8]) series = QtCharts.QStackedBarSeries() series.append(low) series.append(high) chart = QtCharts.QChart() chart.addSeries(series) chart.setTitle("Temperature records in celcius") chart.setAnimationOptions(QtCharts.QChart.SeriesAnimations) categories = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] axisX = QtCharts.QBarCategoryAxis() axisX.append(categories) axisX.setTitleText("Month") chart.addAxis(axisX, Qt.AlignBottom) axisY = QtCharts.QValueAxis() axisY.setRange(-52, 52) axisY.setTitleText("Temperature [°C]") chart.addAxis(axisY, Qt.AlignLeft) series.attachAxis(axisX) series.attachAxis(axisY) chart.legend().setVisible(True) chart.legend().setAlignment(Qt.AlignBottom) chart_view = QtCharts.QChartView(chart) chart_view.setRenderHint(QPainter.Antialiasing) self.setCentralWidget(chart_view)