如何解决在 QtCharts.QDateTimeAxis
我正在使用 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
,但在我看来它缺乏动态设置刻度的任何方法。
我想要实现的是:“在每年的一月画一个大刻度,在每个月初画一个小刻度”。
解决方法
这确实不是正确的方法[0],但作为一种快速且“可实现”的解决方法,您可以将 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
提取 EPOCH 时间戳
[0] 据我所知,唯一“真正”的解决方案是放弃 QtCharts
并依靠 Qwt
来绘制图表
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。