Как сделать график изменения цвета в PySide2 - PullRequest
0 голосов
/ 14 мая 2019

Я пишу программу с графиком, который должен менять цвет при достижении определенной точки.

Это мой текущий код:

self.chart = QtCharts.QChart()
self.chart.setAnimationOptions(QtCharts.QChart.AllAnimations)

self.chartView = QtCharts.QChartView(self.chart)
self.chartView.setRenderHint(QPainter.Antialiasing)

series = QtCharts.QLineSeries()

pen = QtGui.QPen();
pen.setStyle(Qt.SolidLine)
pen.setBrush(QColor(213, 0, 0))

pen2 = QtGui.QPen();
pen2.setStyle(Qt.SolidLine)
pen2.setBrush(QColor(25,255,25))

for x in range(51):
    z = x*2
    y = pow(x,2)
    series.append(z,y)
    series.setPen(pen)

    if x >=10:
        n = x
        for st in range(n, 51):
            series.setPen(pen2) 

self.chart.addSeries(series)

self.main_layout = QVBoxLayout()
self.main_layout.addWidget(self.chartView)
self.setLayout(self.main_layout)

for n in range(11):
    x_ax = n*5

self.axis_x = QtCharts.QValueAxis()
self.axis_x.setTickCount(11)
self.axis_x.setRange(0, x_ax)
self.axis_x.setLabelFormat("%.0f")
self.chart.addAxis(self.axis_x, Qt.AlignBottom)
series.attachAxis(self.axis_x)

for n in range(31):
    y_ax = n*10

self.axis_y = QtCharts.QValueAxis()
self.axis_y.setTickCount(16)
self.axis_y.setRange(0, y_ax)
self.axis_y.setLabelFormat("%.0f")
self.chart.addAxis(self.axis_y, Qt.AlignLeft)
series.attachAxis(self.axis_y)

Проблема в том, что весь график меняет цвет, а не только часть, которая выше x.Я пробовал много разных вещей, но ничего не получалось.Вот как должен выглядеть график:

enter image description here

Любая помощь будет отличной.

...