C++可视化和图表库

8 篇文章 0 订阅
5 篇文章 1 订阅

目录

一、MathGL

二、Gnuplot

三、ChartDirector

四、Qt Charts

五、KD Chart

六、QWT

七、QCustomPlot

八、QtiPlot

九、C++和JS 图表库混合编程

1、Qt+Echarts

2、其它JS图表库


一、MathGL

        mathGL就是用来绘制一些统计图形的一个CPP的库, 实际上就是和gnuplot类似的一个C++的库,很适合科学计算的结果分析和统计,另外还有QT,python等支持的接口,只是在编译库的时候要加上相应的option,这个库用起来很好,减少了很多工作量,其核心调用方式就是使用一个函数指针。

 #include <mgl2\mgl.h>
 
 int main()
 {
     mglGraph gr;
     gr.Title("MathGL Demo");
     gr.SetOrigin(0, 0);
     gr.SetRanges(0, 10, -2.5, 2.5);
      gr.FPlot("sin(1.7*2*pi*x) + sin(1.9*2*pi*x)", "r-2");
     gr.Axis();
     gr.Grid();
     gr.WriteFrame("mgl_example.png");
}

 

二、Gnuplot

        Gnuplot是一个命令行的交互式绘图工具(command-driven interactive function plotting program)。用户通过输入命令,可以逐步设置或修改绘图环境,并以图形描述数据或函数,使我们可以借由图形做更进一步的分析。

        gnuplot是由Colin Kelly和Thomas Williams于1986年开始开发的科学绘图工具,支持二维和三维图形。它的功能是把数据资料和数学函数转换为容易观察的平面或立体的图形,它有两种工作方式,交互式方式和批处理方式,它可以让使用者很容易地读入外部的数据结果,在屏幕上显示图形,并且可以选择和修改图形的画法,明显地表现出数据的特性。

三、ChartDirector

 ChartDirector 是用于 Windows 和 Web 应用程序的专业图表组件。它带有广泛的图表范围,包括饼图、甜甜圈、条形图、线条、样条曲线、阶梯线、趋势线和曲线拟合。图表可以在屏幕上显示或导出为 PDF、SVG、PNG、JPG、GIF 和 BMP 格式。您可以自定义每个图表细节,包括轴、标记和区域、文本、标签和自动缩放。ChartDirector 支持 .NET、.NET Core、WPF、http://ASP.NET MVC、Web Forms 和 Windows(C#、VB 和其他 CLI 语言)、C++、Java、JSP、ASP、COM、VB、VBScript、VBA、JavaScript、PHP、 Perl、Python 和 Ruby。它适用于 Windows、Linux、FreeBSD、Solaris、Mac OS X 系统。

  广泛的图表类型- 饼图、甜甜圈、条形图、直线、样条曲线、阶梯线、趋势线、曲线拟合、线间填充、区域、带、散点、气泡、浮动框、盒须、瀑布、轮廓、热图、表面、矢量、金融、甘特图、雷达、极地、玫瑰、金字塔、锥体和漏斗。

            一直寻找一款Qt下的图形控件库,最后ChartDirector控件映入眼球。ChartDirector控件使用方便,快捷,灵活,功能强大,交互性强。在web服务器以及嵌入式应用程序开发中,它是一种非常理想的工具,拥有丰富的图表图形组件库。ChartDirector 是一款商业的图表库,有多种语言的版本,使用它做的图表非常的精细漂亮,提供免费版本,但会出现logo信息。网上有很多关于它的破解方法。圆形图表(饼状图),圆环图,柱形图(条形图),直线图,曲线图,梯级线图,趋势线图,曲线拟合图,线间色图,区域图,散布图(散形图),泡沫图,floating box,box-whisker,瀑布图,金融类图表,甘特图表,向量图,雷达图,极线图,rose,XY轴交换(旋转图表)和3D效果等效果。

 s

     

四、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


主页:http://www.kdab.com/development-resources/qt-tools/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 许可,自己编译。

九、C++和JS 图表库混合编程

1、Qt+Echarts

    ECharts,商业级数据图表,它是一个纯JavaScript的图标库,常用的图表形式,如折线图、柱状图,饼状图、雷达图等,都可绘制,而且效果好看。这是做Web前端的,经常会用到的工具。这里我就不细说ECharts,一则这个官网教程很详细,再则我也是个门外汉,只会简单的。而Qt要显示web部分的东西,肯定是要用到QtWebkit(Qt4)或者 QtWebEngine(Qt5),这个视版本而定。

         ECharts 提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。

2、其它JS图表库

Highcharts - 国外
G2 - The Grammar Of Graphics,由阿里开发


十、ROOT        

        它提供了处理大数据处理,统计分析,可视化和存储所需的所有功能。它主要用C ++编写,但也可以与其它语言,例如Python和R.集成。

Galleries of images produced with ROOT - ROOT

十一、VTK

        tk是一个3D计算机图形学、图象处理及可视化工具包.支持多语言。

        https://kitware.github.io/vtk-examples/site/

十二、matplotlib

        Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。后来有开源项目lava/matplotlib-cpp为c++做了接口,使得我们可以在c++中使用python的matplotlib库进行绘图


Matplotlib 中文:https://www.matplotlib.org.cn/

一些应用实例和vs配置:https://mangoroom.cn/cpp/call-matplotlib-on-cpp.html

matplotlib-cpp接口工程:https://github.com/lava/matplotlib-cpp

Matplotlib for C++使用手册:https://matplotlib-cpp.readthedocs.io/en/latest/
 

十三、EasyX

        EasyX图形库是一个比较简单容易上手的可视化界面工具包,一般配合VC6.0就可以使用,也可以配合VS系列,这里简单介绍下VC6.0的安装和简单使用。

EasyX Graphics Library for C++

  • 16
    点赞
  • 169
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
c 环境配置 colin 主要包括三个步骤:安装编译器、配置环境变量和测试编译器。 首先,安装编译器。在安装 c 环境之前,我们需要先下载对应的编译器软件。常用的 c 编译器有 gcc、clang、MSVC 等。根据个人需求选择适合自己的编译器,并下载对应的安装包。然后,按照安装向导进行安装即可。安装完成后,我们就拥有了一个可用的 c 编译器。 接下来,配置环境变量。环境变量的配置可以使得我们在任意目录下都能够直接使用 c 编译器。首先,找到我们安装的编译器安装目录。然后,将该目录添加到系统的环境变量中。具体的配置步骤可以根据操作系统的不同而有所差异,但一般都是在控制面板或者系统设置中找到“环境变量”选项,然后添加编译器安装目录到系统的“PATH”变量中。配置完成后,我们就可以在任意目录下打开命令行终端,输入编译器命令来编译和运行 c 程序。 最后,测试编译器。经过以上两个步骤的配置,我们就可以测试我们的 c 编译器是否正常工作了。在任意目录下新建一个文本文件,将其后缀改为“.c”,比如“test.c”。然后,用任意文本编辑器打开该文件,输入一段简单的 c 代码,比如“#include <stdio.h> int main(){ printf("Hello, world!"); return 0; }”。保存文件后,回到命令行终端,进入该文件所在的目录,输入编译命令,如“gcc test.c -o test”,然后按回车键进行编译。如果没有出现错误信息,说明我们的 c 编译器已经成功配置。 综上所述,通过安装编译器、配置环境变量和测试编译器三个步骤,我们可以完成 c 环境的配置,从而能够顺利编译和运行 c 程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kupeThinkPoem

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值