24

我需要在我的应用程序中实现一些这样或那样的情节甚至可以是类似的东西。

我在 Qt 网站上进行了搜索,没有任何进展,我看到了 Qwt 包,但那里没有类似的东西。

有任何想法吗?

4

7 回答 7

33

我喜欢 QCustomPlot,它是一个 Qt C++ 库。它专注于制作美观、出版质量的 2D 绘图、图形和图表,并且对于实时可视化应用程序也具有高性能。你可以在这里得到它:http ://www.qcustomplot.com/

于 2014-02-03T14:54:10.043 回答
28

我强烈推荐Qwt

Qwt 是一个成熟的、文档齐全的库,我认为可以公平地说,它是在 Qt 中实现绘图和其他显示和控制小部件的标准解决方案。

如果您需要 3D 绘图,请尝试QwtPlot3D

于 2009-09-29T09:26:45.470 回答
8

我正在Qwt为此使用。诀窍是使用阶跃函数(参见此链接的最后一个示例),并将数据移动 0.5,以便条形图以刻度为中心。下面是启用 alpha 混合和抗锯齿功能的示例:我的直方图。希望,你会做得更好;-)

于 2009-09-29T09:10:28.573 回答
7

作为 Qwt 的替代方案,您也可以考虑qt-plotting-widget这可能是一个更简单的选择。

于 2012-06-13T16:35:24.493 回答
3

Qt 5.6现在包括 Qt Charts 2.1,它支持条形图(以及其他 7 种)。

于 2016-05-11T09:33:12.227 回答
2

Qt 不支持开箱即用的绘图。

最基本的解决方案是使用QGraphicsView。只需使用各种项目渲染您的情节。

除此之外,您可以关注此线程。它包含一些指向绘图框架的指针,但我不知道它们有多大用处,也不知道 Qt 4.x 是否仍然支持它们。

于 2009-09-29T09:00:32.247 回答
1

QCustomPlot真的很容易上手,并且您可以做很多笛卡尔绘图类型。话虽如此,就性能而言,如果您打算一次绘制大型时间序列,则不如其他人所说的那么好。它在内部使用 aQMap来存储数据,这意味着对于您在填充时插入或删除的每个数据点,都会有一次内存分配/释放以将数据点添加到地图中。有关更多信息,请参阅此帖子

我不喜欢的另一件事是,即使对于简单的绘图,它在内部使用一个QCPData存储 6 个双精度值的结构,而您通常需要两个 (xy)。也就是说,它将显示时间序列所需的内存量增加了三倍。

于 2015-01-05T04:05:39.487 回答