首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在QtCharts.QDateTimeAxis上设置动态刻度

在QtCharts.QDateTimeAxis上设置动态刻度
EN

Stack Overflow用户
提问于 2021-04-28 09:42:24
回答 1查看 290关注 0票数 0

我正在使用Qt5 (通过pyside2)绘制一个“货币/时间”图表应用程序。

我可以绘制数据,现在我试图设置轴。我用一个支持动态滴答的QValueAxis来设置y轴,所以我可以说“每10000欧元画一个滴答”。

代码语言:javascript
复制
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,但在我看来,它缺乏任何方法来动态地设置刻度。

我想要做到的是:“每年一月一次,一年一次,每个月开始一次小勾”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-10 07:37:57

这确实不是正确的方法,但作为一种快速和“可实现的”工作,您可以用一个QDateTimeAxis替换QCategoryAxis,并将各种“类别”填充为(例如)可用数据的年份(+-前后一年)。

代码语言:javascript
复制
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绘制图表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67297703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档