我正在使用Qt5 (通过pyside2)绘制一个“货币/时间”图表应用程序。
我可以绘制数据,现在我试图设置轴。我用一个支持动态滴答的QValueAxis来设置y轴,所以我可以说“每10000欧元画一个滴答”。
axis_y = QtCharts.QValueAxis()
axis_y.setTickType(QtCharts.QValueAxis.TicksDynamic)
axis_y.setTickAnchor(0.)
axis_y.setTickInterval(10000.)
axis_y.setMinorTickCount(9)
self.addAxis(axis_y, Qt.AlignLeft)我不能用x轴实现同样的结果。我正在使用QDateTimeAxis,但在我看来,它缺乏任何方法来动态地设置刻度。
我想要做到的是:“每年一月一次,一年一次,每个月开始一次小勾”。
发布于 2021-05-10 07:37:57
这确实不是正确的方法,但作为一种快速和“可实现的”工作,您可以用一个QDateTimeAxis替换QCategoryAxis,并将各种“类别”填充为(例如)可用数据的年份(+-前后一年)。
axis_x = QtCharts.QCategoryAxis()
axis_x.setLabelsPosition(QtCharts.QCategoryAxis.AxisLabelsPositionOnValue)
for dt in years(data):
axis_x.append(f'{dt}', ts(dt))
self.addAxis(axis_x, Qt.AlignBottom)
series.attachAxis(axis_x)其中,years生成数据的年数(作为date对象),ts提取时代时间戳
据我所知,唯一的“真正”解决方案是抛弃QtCharts,依靠Qwt绘制图表。
https://stackoverflow.com/questions/67297703
复制相似问题