由于需要对C++代码中生成的数据绘图,C++本身对绘图支持的不够,自己对Python 也不熟悉,但由于有些源码提供的是Python代码,因此,对python也略了解一些,看懂相关代码问题不大,但如果把所有代码都由C++移植到Python,短时间内困难较大,之前在vc中用过matplotlib-cpp绘图,通过查阅相关资料也成功生成了需要的图,但间隔时间长了,这次又想用它来绘制图形,又得从头来一遍,耗时费力,因此,决定把整个过程记录下来,以便下次用到时更加顺利,如果对他人有所帮助,则深感欣慰,但如果由于每个人的需求不一样,不能满足您的需要,也请多指正。
正如matplotlib-cpp介绍中说的,它只是封装了python中的matplotlib库,因此,在安装好python之后,还需要安装相应的库,python的安装比较简单,安装好后简单的设置一下环境变量,不同版本的支持可能会有不同,因此,这里为了后续的设置方便,设置好环境变量。我这里之前的3.9发现还在,现在又装了最新版本3.10,因此,设置PYTHON_HOME环境变量,如果后面要用到3.9版本,则只需要修改这处。
接着在path中添加这个变量,注意和常见的jdk不同,该目录就包含了python.exe程序,因此,path中直接就添加如下变量即可。
如前所述,matplotlib-cpp只是对matplotlib的封装,因此,还需要安装matplotlib库,虽然另一个扩展numpy,如果不能安装的话,在matplotlib-cpp的使用说明(“If, for some reason, you're unable to get a working installation of numpy on your system, you can define the macro WITHOUT_NUMPY
before including the header file to erase this dependency. ”)中也说了可以通过定义宏WITHOUT_NUMPY
来忽略,但由于这个也经常用到,这里就一并安装了。
Win+R 输入 cmd:
安装过程中,系统会自动下载相关依赖安装包。到这一步,之前的程序已经能运行并生成图形了。这里为了完整性,接下来对Visual Studio 2022中工程的配置也记录下来。
如matplotlib-cpp说明中指出,The C++-part of the library consists of the single header file matplotlibcpp.h
which can be placed anywhere,因此,根据自己的项目目录设置,复制matplotlibcpp.h到相应的目录,并在需要用到的cpp中包含该文件。
接下来,需要在工程的属性配置中进行相应的设置。主要有这几个地方,VC++ Directories,以及Linker-->Input 设置库文件目录。如下图,
在Include Directories中,如前所述,为了在更换不同版本的python时可以不修改vc工程属性设置,前面已经设置好了相应的环境变量,这里只需添加如下内容
Library Directories 设置类似Include Directories
接下来,在Linker--> Input 中, Additional Dependencies 进行如下设置
至此,整个环境配置就基本结束,接下来就是如何用它绘图了,这里每个人可以根据自己的需求,结合相应的使用说明,可以简单的进行绘图操作了。
之前在用这个库的时候,碰到Debug模式下,库的修改问题,这个等下次用到时再补充。