是否有“开箱即用”2D/3D绘图库用于c++ ?

时间:2023-02-03 20:30:59

I looked at the different options for plotting functions (or other types of graphs) in an interactive window. I mostly use wxWidgets but I'd be open to any other "interfaces".

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

Looking at what is available, here is what I've found:

wxPlot: Not updated since 2006. But it would be a good candidate if it was...

wxPlot:自2006年以来没有更新。但是如果它是…

wxMathPlot: Very new, not mature, few features (still active?)

wxMathPlot:非常新的、不成熟的、很少的特性(仍然活跃吗?)

libgraph: Outdated, not rebust, 2D only and outputs images only.

libgraph:过时的、非rebust、2D only和仅输出图像。

koolplot: Too basic, no control over the created window.

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

EasyBMP: Very basic, only images output.

非常基本,只输出图像。

plotutils: Command line only.

plotutils:命令行。

plplot: C and C++ API are barely maintained. It is in fact on this that wxPlot is based. Could be a could candidate also if C and C++ interface we're updated.

plplot:几乎不维护C和c++ API。wxPlot实际上就是基于此。如果我们更新了C和c++接口,可能也是一个候选。

Any comments? Ideas?

任何评论?想法吗?

Thanks!

谢谢!

14 个解决方案

#1


13  

Even though this thread is old but gold. QCustomPlot is very recommendable as well to complement this list.

虽然这条线是旧的,但是是金子。QCustomPlot是非常推荐的,也是对这个列表的补充。

#2


12  

MathGL have many plot types, C/Fortran interface and basic data analysis

MathGL有许多图类型,C/Fortran接口和基本的数据分析

#3


9  

I'm all about ROOT for these needs. Pretty heavy if you don't need all the analysis support, though.

我完全支持这些需求。不过,如果您不需要所有的分析支持,那就相当沉重了。

#4


7  

You have Qwt which is mature. There is a 3D version lurking somewhere. However, I have never been satisfied with the aesthetic result.

你有成熟的Qwt。有一个3D版本潜伏在某处。然而,我从来没有满意的审美结果。

It may be worth waiting for Qt3D to come out to write something better yourself easily.

等待Qt3D出来轻松地写出更好的东西可能是值得的。

#5


5  

I programmatically provide required input files to GNUPlot executable and invoke it using system() function. It is suitable to my situation since I only want to visualize my data during research. But if you want the plotting functionality integrated into your executable file, maybe this is not for you :)

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

#6


5  

u can use DISLIN

你可以使用DISLIN

it is quite neat!

很整洁!

#7


3  

Might wxChart be an option? I have not used it myself however and it looks like it hasnt been updated for a while.

wxChart可能是一个选项吗?我自己还没有使用过它,看起来它已经有一段时间没有更新了。

#8


3  

Just an idea: Use Python as embeddable scripting language to plot your graphs. Python has a plethora of plotting libraries.

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

#9


1  

We use an ancient version of ComponentOne Chart.

我们使用一个古老的组件图版本。

#10


1  

AntiGrain Geometry (AGG). http://www.antigrain.com/. Its an opensource 2D vector graphics library. Its a standalone library with no additional dependencies. Has good documentation. Python plotting library matplotlib uses AGG as one of backends.

AntiGrain几何(gg)。http://www.antigrain.com/。它是一个开源的二维矢量图形库。它是一个独立的库,没有附加的依赖项。具有良好的文档。Python绘图库matplotlib使用AGG作为后台之一。

#11


1  

Have a look at wxArt2d it is a complete framework for 2d editing and plotting. See the screenshots for more examples.

看看wxArt2d,它是一个完整的2d编辑和绘图框架。更多示例请参见屏幕截图。

Some interesting features:

一些有趣的特性:

  • Reading and writing SVG and CVG
  • 阅读和编写SVG和CVG。
  • Several views of the same document
  • 同一文档的几个视图
  • Changes are updated when idle
  • 更改在空闲时更新
  • Optimized drawing of 2d objects
  • 优化二维对象的绘制

#12


1  

Hey! I'm the developer of wxMathPlot! The project is active: I just took a long time to get a new release, because the code needed a partial rewriting to introduce new features. Take a look to the new 0.1.0 release: it is a great improvement from old versions. Anyway, it doesn't provide 3D (even if I always thinking about it...).

嘿!我是wxMathPlot的开发者!项目是活动的:我只是花了很长时间才得到一个新的版本,因为代码需要部分重写以引入新的特性。看看新的0.1.0发行版:它是对旧版本的巨大改进。无论如何,它不提供3D(即使我总是在想它……)

#13


0  

I found the game library Allegro easy to use back in the day. Might be worth a look.

我发现游戏库的快板在以前很容易使用。也许值得一看。

#14


-1  

OpenGL. It WILL be hard and possibly rewriting the wheel, though. Keep in mind that OpenGL is a general 3D library, and not a specific plot library, but you can implement plotting based on it.

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

#1


13  

Even though this thread is old but gold. QCustomPlot is very recommendable as well to complement this list.

虽然这条线是旧的,但是是金子。QCustomPlot是非常推荐的,也是对这个列表的补充。

#2


12  

MathGL have many plot types, C/Fortran interface and basic data analysis

MathGL有许多图类型,C/Fortran接口和基本的数据分析

#3


9  

I'm all about ROOT for these needs. Pretty heavy if you don't need all the analysis support, though.

我完全支持这些需求。不过,如果您不需要所有的分析支持,那就相当沉重了。

#4


7  

You have Qwt which is mature. There is a 3D version lurking somewhere. However, I have never been satisfied with the aesthetic result.

你有成熟的Qwt。有一个3D版本潜伏在某处。然而,我从来没有满意的审美结果。

It may be worth waiting for Qt3D to come out to write something better yourself easily.

等待Qt3D出来轻松地写出更好的东西可能是值得的。

#5


5  

I programmatically provide required input files to GNUPlot executable and invoke it using system() function. It is suitable to my situation since I only want to visualize my data during research. But if you want the plotting functionality integrated into your executable file, maybe this is not for you :)

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

#6


5  

u can use DISLIN

你可以使用DISLIN

it is quite neat!

很整洁!

#7


3  

Might wxChart be an option? I have not used it myself however and it looks like it hasnt been updated for a while.

wxChart可能是一个选项吗?我自己还没有使用过它,看起来它已经有一段时间没有更新了。

#8


3  

Just an idea: Use Python as embeddable scripting language to plot your graphs. Python has a plethora of plotting libraries.

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

#9


1  

We use an ancient version of ComponentOne Chart.

我们使用一个古老的组件图版本。

#10


1  

AntiGrain Geometry (AGG). http://www.antigrain.com/. Its an opensource 2D vector graphics library. Its a standalone library with no additional dependencies. Has good documentation. Python plotting library matplotlib uses AGG as one of backends.

AntiGrain几何(gg)。http://www.antigrain.com/。它是一个开源的二维矢量图形库。它是一个独立的库,没有附加的依赖项。具有良好的文档。Python绘图库matplotlib使用AGG作为后台之一。

#11


1  

Have a look at wxArt2d it is a complete framework for 2d editing and plotting. See the screenshots for more examples.

看看wxArt2d,它是一个完整的2d编辑和绘图框架。更多示例请参见屏幕截图。

Some interesting features:

一些有趣的特性:

  • Reading and writing SVG and CVG
  • 阅读和编写SVG和CVG。
  • Several views of the same document
  • 同一文档的几个视图
  • Changes are updated when idle
  • 更改在空闲时更新
  • Optimized drawing of 2d objects
  • 优化二维对象的绘制

#12


1  

Hey! I'm the developer of wxMathPlot! The project is active: I just took a long time to get a new release, because the code needed a partial rewriting to introduce new features. Take a look to the new 0.1.0 release: it is a great improvement from old versions. Anyway, it doesn't provide 3D (even if I always thinking about it...).

嘿!我是wxMathPlot的开发者!项目是活动的:我只是花了很长时间才得到一个新的版本,因为代码需要部分重写以引入新的特性。看看新的0.1.0发行版:它是对旧版本的巨大改进。无论如何,它不提供3D(即使我总是在想它……)

#13


0  

I found the game library Allegro easy to use back in the day. Might be worth a look.

我发现游戏库的快板在以前很容易使用。也许值得一看。

#14


-1  

OpenGL. It WILL be hard and possibly rewriting the wheel, though. Keep in mind that OpenGL is a general 3D library, and not a specific plot library, but you can implement plotting based on it.

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