我正在尝试使用 QtCharts 制作极坐标图,方法是使用该页面底部链接的源代码复制此处的示例。我已将 C++ 代码转换为 PySide2 兼容代码,一切似乎都正常工作(即显示了情节并绘制了系列),但由于某种原因,角轴的标签不正确。当我运行我的代码时,角轴的标签与径向轴的标签重叠,尽管我按如下方式添加了角轴:
self.chart.addAxis(self.angularAxis, QtCharts.QtCharts.QPolarChart.PolarOrientationAngular
根据文档,这是我应该为角轴做的事情,但它似乎不起作用。它最终看起来像这样:
下面是生成它的代码。
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_())