我认为您的问题有几个微妙之处很重要:
- 您正在将解释语言 (Python) 与编译语言 (C++) 进行比较。
- 大多数科学和工程软件的开发都偏重于 Linux(和 UNIX),并且通常不以跨平台兼容性或出色的用户支持而闻名(当然,大型库除外)
如果您真的想使用 C++ 库,您可能需要具有基于 CMake 的构建系统的东西。PLplot 就是这样一个库,它看起来很有名,并且有一个 C++ 接口(不幸的是,似乎出现的其他库是 ROOT 和 MathGL ......)。
但是,考虑到上述几点,如果使用 Cygwin 或 MinGW 会让您大发雷霆,我会坚持使用 Python 或您可以从二进制文件安装的可视化程序(例如 Paraview 或 VisIt;其他程序可以也可以工作)。原因如下:
解释语言便于调整可视化
在 C++ 中进行可视化的最大优势在于,您可以将其附加到您可能用于模拟工作的任何 C++ 代码中。也就是说,如果您必须在每次修改后编译您的代码,那么调整您的可视化会更加耗时。使用解释性语言,一旦加载数据,您就可以在命令行上对可视化进行后处理和调整。如果您绘制原始数据并确定它可能看起来更好地标准化,没问题;几行代码,你可以在一两分钟内调出一个新的情节,而无需重新编译。
在 Windows 上编译科学软件很痛苦
...因为很多时候,编写它的人都没有使用像 CMake 这样的跨平台构建系统,所以你要么必须费力地破解一个有效的 Makefile,要么使用 Cygwin 或 MinGW 编译所有内容并希望该软件不依赖于 Linux 库(因为毕竟 Cygwin 是一个 POSIX 兼容层)。如果一个项目使用了 CMake,那很可能意味着开发者已经考虑到了这些问题,CMake 会输出必要的构建脚本来用 Visual Studio 编译软件,这会让你的生活不那么痛苦。否则,可能不值得花时间和精力。
如果您可以从二进制文件中安装所需的可视化软件,您就不必担心与 Visual Studio 搏斗。我能想到的至少有两个 Python 发行版将在多个平台上为 Matplotlib(Continuum 的 Anaconda 和 Enthought Canopy)提供 Python 的二进制安装。Paraview 和 VisIt 都是功能强大的科学可视化软件包,同样可以从二进制文件安装(它们也可以在 Windows 上从源代码构建)。
我认为没有“标准 C++ 方式”来绘制数据
我还没有听说过绘制数据的“标准 C++ 方式”(这并不意味着它不存在);当我与数据科学家交谈时,他们中的很多人都强调流利使用 Python、R 或 MATLAB 等解释语言是多么方便和重要,因为可以使用这些语言快速开发可视化和后处理。许多字段的标准做法是将数据转储为某种文本格式(列分隔、CSV、HDF5、VTK 等),然后使用其中一种解释语言或专用可视化程序(如 VisIt、 Paraview,对于 2-D 绘图,gnuplot)。