基于Qt的图表库

简介: 简述如果要开发一个 Qt 应用程序(C++ 或 QML),包含绘图和数据可视化,需要插入一些图表,例如:饼图、条形图或更复杂的,有什么可选的图表库呢?一起来看看。简述Qt ChartsKD ChartQWTQCustomPlotQtiPlot更多参考版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/lia

简述

如果要开发一个 Qt 应用程序(C++ 或 QML),包含绘图和数据可视化,需要插入一些图表,例如:饼图、条形图或更复杂的,有什么可选的图表库呢?一起来看看。

版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/liang19890820

Qt Charts

这里写图片描述

  • 来自:Qt 官方提供

  • 基于:Qt Graphics View 框架

  • 兼容性:Qt5.7 及以上版本可直接使用;Qt5.7 之前的版本(最早只能到 Qt5.4),需要自行编译使用;更早的版本中,只能使用商业版 Qt。

  • 许可模式:长久以来都是收费的,只有商业版才可以使用,但从 Qt5.7 开始,以 GPLv3 许可(针对开源用户)提供给开源版使用。

  • 主要特点:美观、现代、性能好、易上手。。。由于使用了 Qt Graphics View 框架,因此可以很轻松地被集成到现代用户界面。而且 Qt Charts 可用作 QWidgets、QGraphicsWidget 或 QML 类型。通过选择一个图表主题,可以轻松地创建令人印象深刻的图表。

  • 主要功能:提供了一组更受欢迎、易于使用的图表组件:条形图、极坐标图、饼图、散点图、以及许多示例和主题。

KD Chart

这里写图片描述

  • 来自:KDAB 的解决方案

  • 基于:Qt Model-View,允许重用现有的数据模型来创建图表。

  • 兼容性:支持 Qt4 和 Qt5

  • 最新版本:KD Chart 2.6.0

  • 许可模式:基于 GPL 或商业许可,可自行选择。

  • 主要特点:用于创建业务图表,是同类中最强大的 Qt 组件。除了具有所有标准功能之外,它能够使开发人员设计和管理大量的轴,并提供复杂的定制。

  • 主要功能:提供了非常有用的甘特图(包含:Gantt charts),以及流行的图表:条形图、折线图、饼图。通过使用 KDChartWidget,可以简单地将图表集成到 Qt 应用程序。

QWT

这里写图片描述

  • 主页:http://qwt.sourceforge.net/

  • 全称:Qt Widgets for Technical Applications

  • 基于:Qt Widgets

  • 兼容性:支持 Qt4 和 Qt5

  • 最新版本:Qwt 6.1.3 ,发布日期:2016/06/12

  • 许可模式:基于 LGPL 版权协议的开源项目

  • 主要特点:成熟、高效,有良好的文档,并提供了大量的示例,与大量(数千、数十万)的点工作得很好。

  • 主要功能:包含了基本的 2D 图,例如:散点图、直方图、散点图,还提供了刻度、滑块、圆盘、温度计、仪表盘等。

QCustomPlot

这里写图片描述

  • 主页:http://www.qcustomplot.com/

  • 基于:Qt Widgets

  • 兼容性:支持 Qt4.6 - Qt5.7

  • 最新版本:QCustomPlot 2.0.0-beta,发布日期:2016/09/13

  • 许可模式:源代码和软件根据 GNU GPL 许可,除非另有说明。

  • 主要特点:界面干净、简洁、小巧玲珑(只有两个源文件,没有进一步的依赖性),很容易扩展,并且有良好的文档。专注于制作好看,出版高质量的 2D 绘图、图形和图表,以及为实时可视化应用程序提供更高的性能。

  • 主要功能:提供了漂亮的 2D 图 ,例如:曲线图、趋势图、坐标图、柱状图等。

注意:可在项目中直接使用两个源文件,或预先编译成库。

QtiPlot

这里写图片描述

  • 主页:http://www.qtiplot.com/

  • 基于:OpenGL 的 3D 绘图

  • 兼容性:支持 Qt4 和 Qt5

  • 最新版本:QtiPlot 0.9.9.8 release 版,发布日期:2016/12/12

  • 许可模式:基于 GPL 或商业许可,可自行选择。

  • 主要特点:用于交互式科学绘图和数据分析,类似于专有程序 Origin 或 SigmaPlot,在大学中被广泛使用。

  • 主要功能:支持 2D 和 3D 绘图,具有一些高级功能,例如:统计分析、曲线拟合、图像分析工具。

注意:虽然 QtiPlot 开源免费,但是免费指的是它的源代码,其编译好的二进制代码(也就是可执行文件)是收费的,因此,如果你不想支付费用的话,则可以使用 GPL 许可,自己编译。

更多参考

对于上述的图表库,几乎都可以导出为各种格式,例如:PDF、SVG、Images(bmp、ico、jpeg、png……)等。

由于 Qt 5.7 集成了以前用于商业的 Qt Charts,使其可用于 LGPLv3 许可下的开源版,这使得 Qt Charts 更受欢迎。。。小伙伴们,赶快行动吧,还在等什么!

图表库太多,除了这些之外,还有一些其他的库(例如:ChartDirector)。当然,我们还可以选择强大的 JS 图表库,例如:

  • Highcharts - 国外
  • ECharts - Enterprise Charts,由百度开发
  • G2 - The Grammar Of Graphics,由阿里开发
    ……

           $(function () {                 $('pre.prettyprint code').each(function () {                     var lines = $(this).text().split('\n').length;                     var $numbering = $('<ul/>').addClass('pre-numbering').hide();                     $(this).addClass('has-numbering').parent().append($numbering);                     for (i = 1; i <= lines; i++) {                         $numbering.append($('<li/>').text(i));                     };                     $numbering.fadeIn(1700);                 });             });        

目录
相关文章
QString与char *之间的完美转换,支持含有中文字符的情况
QString与char *之间的完美转换,支持含有中文字符的情况
2498 0
|
8月前
|
人工智能
第二批拟立项名单|2024年阿里云协同育人项目立项通知
第二批拟立项名单|2024年阿里云协同育人项目立项通知
|
小程序 前端开发 iOS开发
微信小程序:多行文本溢出出现多余的文字-webkit-line-clamp
微信小程序:多行文本溢出出现多余的文字-webkit-line-clamp
666 0
微信小程序:多行文本溢出出现多余的文字-webkit-line-clamp
|
存储 分布式计算 资源调度
什么是Hadoop及其组件?
【8月更文挑战第31天】
930 1
|
9月前
|
缓存 网络协议
Jmeter如何对UDP协议进行测试?
`jmeter-plugins`是JMeter的插件管理器,用于管理和组织所有插件。访问[官网](https://jmeter-plugins.org/install/Install/)下载并放置于`lib/ext`目录下,重启JMeter后可在“选项”中看到插件管理器。
230 1
Jmeter如何对UDP协议进行测试?
|
12月前
|
机器学习/深度学习 自然语言处理 算法
汉字的探索性分词方式:基于字图的部首分解与图神经网络的多因素表示
本文提出一种结合传统字符嵌入与部首结构的图表示法,用于捕捉汉字的语义和组成结构,提升大模型对汉字的理解能力。方法包括将字符分解为部首,构建部首图,并利用图卷积网络生成嵌入。此方法增强了模型的泛化能力和灵活性,并提供了代码实现。未来可优化的方向包括改进图构建算法、扩展部首系统、探索更先进的图神经网络架构及多模态融合。
337 2
|
缓存 负载均衡 安全
Servlet与JSP在Java Web应用中的性能调优策略
【6月更文挑战第23天】在Java Web中,Servlet和JSP调优至关重要,以应对高并发和复杂业务带来的性能挑战。优化包括Servlet复用、线程安全、数据库连接池,以及JSP的编译优化、使用JSTL、页面缓存和静态内容分离。全局优化涉及负载均衡、异步处理和缓存策略。通过这些实践,开发者能提升应用响应速度和吞吐量,确保高负载下的稳定运行。
249 7
|
机器学习/深度学习 编解码 算法
万字长文解读图像超分辨率 Real-ESRGAN 论文笔记+代码阅读
万字长文解读图像超分辨率 Real-ESRGAN 论文笔记+代码阅读
2080 3
|
自然语言处理 编译器 C语言
【C/C++ 标准的发展】C/C++ 语言标准的历史和演变
【C/C++ 标准的发展】C/C++ 语言标准的历史和演变
675 3
|
存储 弹性计算 固态存储
阿里云服务器云盘有何区别?(ESSD AutoPL、高效云盘、ESSD云盘、SSD云盘)
阿里云服务器云盘种类如何选?目前阿里云服务器有ESSD AutoPL、高效云盘、ESSD云盘、SSD云盘可供选择,很多新手用户并不清楚他们之间的区别,也就不知道应该如何选择,因为不同的云盘在最大IOPS、最大吞吐量等性能上是有区别的,下面我们一起来他们之间的区别,这样就有助于我们选择适合自己需求的系统盘与存储盘了。
阿里云服务器云盘有何区别?(ESSD AutoPL、高效云盘、ESSD云盘、SSD云盘)