Поляризованные оси PySide2 не отображаются правильно - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь построить полярный график, используя QtCharts, скопировав пример здесь , используя найденный исходный код , связанный в нижней части этой страницы. Я преобразовал C ++код в PySide2-совместимый код, и все, кажется, в основном работает (то есть отображается график и рисуется серия), но по какой-то причине угловая ось помечена неправильно.Когда я запускаю свой код, метки для угловой оси перекрывают метки для радиальной оси, несмотря на то, что я добавляю угловую ось следующим образом:

self.chart.addAxis(self.angularAxis, QtCharts.QtCharts.QPolarChart.PolarOrientationAngular

Согласно документации, это то, что я долженсделать для угловой оси, но, похоже, не работает.В конечном итоге это выглядит так:

enter image description here

Ниже приведен код, который генерирует это.

 import sys
 from PySide2 import QtCore, QtWidgets, QtGui, QtCharts

 class Main(QtWidgets.QMainWindow):
     def __init__(self, parent=None):
         super(Main, self).__init__(parent)
         self.angularMin = 0
         self.angularMax = 360

         self.radialMin = -100
         self.radialMax = 100

         self.chart = QtCharts.QtCharts.QPolarChart()
         self.chart.setTitle("Example Chart")

         self.angularAxis = QtCharts.QtCharts.QValueAxis()
         self.angularAxis.setTickCount(9)
         self.angularAxis.setLabelFormat("%.1f")
         self.angularAxis.setShadesVisible(True)
         self.angularAxis.setShadesBrush(QtGui.QBrush(QtGui.QColor(249, 249, 255)))
         self.chart.addAxis(self.angularAxis, QtCharts.QtCharts.QPolarChart.PolarOrientationAngular)

         self.radialAxis = QtCharts.QtCharts.QValueAxis()
         self.radialAxis.setTickCount(9)
         self.radialAxis.setLabelFormat("%d")
         self.chart.addAxis(self.radialAxis, QtCharts.QtCharts.QPolarChart.PolarOrientationRadial)

         self.radialAxis.setRange(self.radialMin, self.radialMax);
         self.angularAxis.setRange(self.angularMin, self.angularMax);

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

 app = QtWidgets.QApplication(sys.argv)
 main = Main()
 main.show()
 sys.exit(app.exec_())
...