【发布时间】:2012-10-25 11:17:45
【问题描述】:
我现在使用 Qwt 已经两年了。我喜欢它的面向对象的类,这使得调整绘图和功能变得非常容易。 这些天来,QCustomPlot 变得越来越流行并与 Qwt 竞争。 当然,我确实比较了 API。不过,我对这两个图书馆有经验的用户的证词很感兴趣。什么是方便?什么不是?有什么陷阱吗?
【问题讨论】:
标签: qt plot qwt qcustomplot
我现在使用 Qwt 已经两年了。我喜欢它的面向对象的类,这使得调整绘图和功能变得非常容易。 这些天来,QCustomPlot 变得越来越流行并与 Qwt 竞争。 当然,我确实比较了 API。不过,我对这两个图书馆有经验的用户的证词很感兴趣。什么是方便?什么不是?有什么陷阱吗?
【问题讨论】:
标签: qt plot qwt qcustomplot
我不会称自己“经验丰富”,因为我只使用了几个月的 Qwt,而使用了几周的 QCustomPlot。话虽如此,我的印象是:
编辑:QCustomPlot 的作者是aware 缺少设置绘图背景的功能,并承诺在即将发布的版本中添加它。
QCustomPlot 和 Qwt 之间还有另一个重要区别 - 许可。 - Qwt 是 LGPL,因此您可以将其链接到非 GPL 项目。 QCustomPlot 是 GPL v.3,很多人(包括我自己)觉得它太严格了。如果您需要 LGPL 许可证,QCustomPlot 作者邀请与他联系。
EDIT2(2013 年 3 月 25 日):Qwt 分支 5.* 和 6.* 的新版本出现在 11 月,这取消了 QCustomplot “更积极开发”的优势
【讨论】:
我无法比较这两个库,因为我只使用 QCustomPlot(现在一年),但我相信我的评论可能对其他人有用。
QCustomPlot 的优点:
QCustomPlot 的缺点:
如果需要 LGPL-ish 许可证,则可能没有免费选项(取决于作者的考虑)。鉴于图书馆的质量和可用性,我公司为换取 LGPL 许可协议而提供的捐赠并没有不当。
【讨论】:
当绘制很多点时。 并且用户将点集中到整个情节。即(x,y轴被像素完全覆盖)
(点数 = 下面给出的计算)
在拖动绘图时:
我注意到的是: 拖动时,Qwt 仅拖动绘图区域,然后将其拖放到该区域上。 而 QCustomPlot 尝试在删除之前重新绘制。 (请注意,但这可以帮助 QCustomPlot 人做得更好。)
另外,Qwt 提供了可以在外部管理的原始缓冲区选项。 我能够将(QcustomPlot)150Mb 减少到小于(Qwt)40Mb。 保持,
QCustomPlot 强制用户分配内存给 X 轴 (errorbar+ , errorbar-), y 轴 (errorbar+, errorbar-) (2 * 2 * sizeof(double)) 内存浪费了 3 * 2 * sizeof(double) 即 48 字节中的 32 字节是浪费的(对于 1 个样本),因为一个样本(对于 x 和 y)只有 Qwt 需要 16 字节。
阿飞明白,Qwt中也可以实现errorbar
即使在启用抗锯齿后,Qwt 的性能也要好得多。
注意事项:
将背景更改为白色、启用抗锯齿和网格后,Qwt 可以变得更好看
测试日期:
另外,QCustomPlot 在 Qt4 上的表现相同。
这些是我的发现,可能因条件而异。
我已经切换回 Qwt。 希望这有助于其他人选择。 :)
次要:
如果我在某些方面有错误,请纠正我。
【讨论】:
优点:
缺点:
doubles,即使您只需要X 和Y
QMap 来存储数据点并保持它们的排序。平移和缩放非常有效,但在样本数量很大(例如 1,000,000 个数据点)时填充速度很慢【讨论】: