【问题标题】:Is there any 'out-of-the-box' 2D/3D plotting library for C++? [closed]是否有任何“开箱即用”的 C++ 2D/3D 绘图库? [关闭]
【发布时间】:2010-09-22 17:03:43
【问题描述】:

我查看了在交互式窗口中绘制函数(或其他类型的图表)的不同选项。我主要使用 wxWidgets,但我愿意接受任何其他“接口”。

看看有什么可用的,这是我发现的

wxPlot:自 2006 年以来未更新。但如果它是...

wxMathPlot:非常新,不成熟,功能很少(仍然活跃?)

libgraph:已过时,不是 rebust,仅 2D 且仅输出图像。

koolplot:太基础了,无法控制创建的窗口。

EasyBMP:非常基本,仅输出图像。

plotutils:仅限命令行。

plplot:几乎没有维护 C 和 C++ API。事实上,wxPlot 正是基于此。如果我们更新了 C 和 C++ 接口,也可能成为候选对象。

有没有cmets?想法?

谢谢!

【问题讨论】:

    标签: c++ graph wxwidgets plot


    【解决方案1】:

    wxChart 可能是一个选项吗?不过我自己没用过,好像好久没更新了。

    【讨论】:

      【解决方案2】:

      只是一个想法:使用 Python 作为可嵌入的脚本语言来绘制图表。 Python 有大量的plotting libraries

      【讨论】:

      • 如果您不介意嵌入 Python 解释器,您还可以从应用程序中的脚本语言中获得很多其他好处,以及访问您链接到的那种库。 +1
      • 如果相比将数据写入文件并使用系统调用运行py脚本,哪个更方便快捷?
      • @zhangxaochen 这取决于你在做什么。
      【解决方案3】:

      OpenGL。不过,这将很困难,并且可能会重写轮子。 请记住,OpenGL 是一个通用的 3D 库,而不是特定的绘图库,但您可以基于它实现绘图。

      【讨论】:

      • 投了反对票,因为我认为在图书馆推荐问题上提出自己的建议并没有真正回答它。
      【解决方案4】:

      我发现游戏库 Allegro 在过去很容易使用。可能值得一看。

      【讨论】:

        【解决方案5】:

        我们使用的是旧版的ComponentOne Chart

        【讨论】:

          【解决方案6】:

          反颗粒几何 (AGG)。 http://www.antigrain.com/。它是一个开源的 2D 矢量图形库。它是一个独立的库,没有额外的依赖项。有很好的文档。 Python 绘图库 matplotlib 使用 AGG 作为后端之一。

          【讨论】:

          • AGG 是一个渲染引擎,而不是一个绘图库。使用它进行绘图需要在其之上重新实现 matplotlib。
          【解决方案7】:

          看看wxArt2d它是一个完整的二维编辑和绘图框架。有关更多示例,请参阅screenshots

          一些有趣的功能:

          • 读写 SVG 和 CVG
          • 同一文档的多个视图
          • 空闲时更新更改
          • 优化了二维对象的绘制

          【讨论】:

            【解决方案8】:

            嘿!我是wxMathPlot的开发者!该项目处于活动状态:我只是花了很长时间才获得新版本,因为代码需要部分重写以引入新功能。看看新的 0.1.0 版本:它比旧版本有了很大的改进。无论如何,它不提供 3D(即使我一直在考虑它......)。

            【讨论】:

            • 它能够“实时”绘图吗? (或接近实时)?明确一点 - 我希望能够从数据源更新并在新点到达时进行绘制。
            【解决方案9】:

            我以编程方式向GNUPlot 可执行文件提供所需的输入文件,并使用system() 函数调用它。它适合我的情况,因为我只想在研究期间可视化我的数据。但是如果你想将绘图功能集成到你的可执行文件中,也许这不适合你:)

            【讨论】:

            • 看看 Gnuplot iostream:一个单一的头文件库,可以直接从您的 C++ 代码中直观地访问 Gnuplot 功能。我喜欢它!
            【解决方案10】:

            ROOT 满足这些需求。不过,如果您不需要所有的分析支持,那就太重了。

            【讨论】:

            • 我知道这是一条旧评论,但感谢您指出 ROOT。我没听说过它,它会非常有用!
            • 我真的很讨厌看到在 GNU 下发布好的库,这真的让它毫无用处。
            • @metablaster 我知道并在我的时间里广泛使用过 ROOT 和 TMVA,鉴于您使用基于 nix 的系统,它们非常方便。自从我转向 Windows 以来,我几乎无法构建它,更不用说编译我自己的任何代码了。这并不重要,因为我不与 CERN 合作,但我经常错过便利。
            【解决方案11】:

            MathGL 有多种绘图类型、C/Fortran 接口和基本数据分析

            【讨论】:

              【解决方案12】:

              你有成熟的Qwt。某处潜伏着一个 3D 版本。但是,我从来没有对美学效果感到满意。

              也许值得等待Qt3D 出来让自己轻松写出更好的东西。

              【讨论】:

                【解决方案13】:

                你可以使用DISLIN

                很漂亮!

                【讨论】:

                • 图书馆需要付费。
                【解决方案14】:

                尽管这条线是旧的但黄金。 QCustomPlot 也非常值得推荐以补充此列表。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2013-11-16
                  • 2011-02-25
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-08-02
                  • 2012-01-11
                  • 1970-01-01
                  相关资源
                  最近更新 更多