def __init__(self): super().__init__() series = QLineSeries() series.setPointsVisible(True) series.setPointLabelsVisible(True) series.setPointLabelsFormat("(@xPoint, @yPoint)") series.append(0, 6) series.append(2, 4) series.append(3, 8) series.append(7, 4) series.append(10, 5) chart = QChart() chart.setTitle("Line Chart Example") chart.setAnimationOptions(QChart.SeriesAnimations) chart.legend().hide() chart.addSeries(series) chart.createDefaultAxes() chart_view = QChartView() chart_view.setChart(chart) chart_view.setRenderHint(QPainter.Antialiasing) self.setCentralWidget(chart_view)
def add_series(self, series: QLineSeries): self.chart().addSeries(series) series.setPointLabelsClipping(False) series.hovered.connect(lambda p, s: series.setPointLabelsVisible(s)) self.chart().setAxisX(self.chart().axisX(), series) self.chart().setAxisY(self.chart().axisY(), series)
def set_series(self, series: QLineSeries): self.chart().removeAllSeries() if not series or len(series) == 0: return self.chart().addSeries(series) series.setPointLabelsClipping(False) series.hovered.connect(lambda p, s: series.setPointLabelsVisible(s)) x_y_points = list(zip(*((e.x(), e.y()) for e in series.pointsVector()))) axisX = self.chart().axisX() axisX.setRange(min(x_y_points[0]), max(x_y_points[0])) axisX.setMinorTickCount(1) axisX.setTickCount(10) axisX.applyNiceNumbers() self.chart().setAxisX(axisX, series) axisY = self.chart().axisY() axisY.setRange(min(x_y_points[1]), max(x_y_points[1])) axisY.setTickCount(18) axisY.applyNiceNumbers() self.chart().setAxisY(axisY, series)
def _fill_chart(self, items: List[Run]): series = QLineSeries() series.setPointsVisible(True) series.setPointLabelsVisible(True) series.setPointLabelsFormat("@yPoint") series.hovered.connect(self.chart_view.show_series_tooltip) self.timestamp_by_run.clear() for run in items: date_value = calendar.timegm(run.date.timetuple()) * 1000 total_issues = run.get_total_issues() series.append(date_value, total_issues) self.timestamp_by_run[date_value] = run chart = QChart() chart.setTheme(QChart.ChartThemeDark) chart.setAnimationOptions(QChart.SeriesAnimations) chart.addSeries(series) chart.legend().hide() # No margin chart.layout().setContentsMargins(0, 0, 0, 0) chart.setBackgroundRoundness(0) axisX = QDateTimeAxis() axisX.setFormat("dd/MM/yyyy") axisX.setTitleText('Date') chart.addAxis(axisX, Qt.AlignBottom) series.attachAxis(axisX) axisY = QValueAxis() axisY.setLabelFormat('%d') axisY.setTitleText('Total issues') chart.addAxis(axisY, Qt.AlignLeft) series.attachAxis(axisY) self.chart_view.clear_all_tooltips() self.chart_view.setChart(chart)
def __init__(self): super().__init__() series = QLineSeries() series.setPointsVisible(True) series.setPointLabelsVisible(True) series.setPointLabelsFormat("(@xPoint, @yPoint)") series.hovered.connect(self.show_series_tooltip) series.append(0, 6) series.append(2, 4) series.append(3, 8) series.append(7, 4) series.append(10, 5) self._chart = QChart() self._chart.setMinimumSize(640, 480) self._chart.setTitle("Line Chart Example") self._chart.setAnimationOptions(QChart.SeriesAnimations) self._chart.legend().hide() self._chart.addSeries(series) self._chart.createDefaultAxes() self.setChart(self._chart)
def add_series(self, series: QLineSeries): self.chart().addSeries(series) self.update_range(series) if self.showPoints: series.setPointLabelsClipping(False) series.hovered.connect( lambda p, s: series.setPointLabelsVisible(s)) axis_x = self.chart().axisX() axis_y = self.chart().axisY() self.chart().setAxisX(axis_x, series) self.chart().setAxisY(axis_y, series) self.chart().axisY().applyNiceNumbers()