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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
    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)
Beispiel #6
0
    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()