用C++绘制图表的第三方库:matplotlib-cpp
https://github.com/lava/matplotlib-cpp
-
下载matplotlib-cpp
git clone https://github.com/lava/matplotlib-cpp.git
太慢的话用这个,一样的:
git clone https://gitee.com/cugcuiyc/matplotlib-cpp.git
-
先包含上库的路径
我用的Clion。include_directories("E:/CppThirdParty/matplotlib-cpp") # 换你自己的
试试官网的例子,能运行了不?#include <matplotlibcpp.h> namespace plt = matplotlibcpp; int main() { plt::plot({1,3,2,4}); plt::show(); }
-
排错
-
没有<Python.h>
解决方案:https://github.com/lava/matplotlib-cpp/issues/282
需要找到Python库所在位置
-
找不到<numpy/arrayobject.h>
解决方案:https://github.com/lava/matplotlib-cpp/issues/46
手动添加头文件路径,找到下载的numpy库,头文件在core/include里面
-
redefinition of ‘struct matplotlibcpp::detail::select_npy_type’
解决方案:点进去看看,注释掉这两行即可 -
Python path configuration报错:atal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named ‘encodings’
盲猜是环境变量的问题:
解决方案:添加python路径到环境变量,变量名为PYTHONHOME和PYTHONPATH。我用的Anaconda的base环境:
重启。 -
This application failed to start because it could not find or load the Qt platform plugin “windows”
in “”.
解决方案:确保在当前python环境下安装好tkinter库。在 .matplotlib 下新建一个文件 matplotlibrc(无后缀名) 添加内容: backend: TkAgg
-
行吧,几乎把Issues全过了一遍。终于,运行成功!
注意,你可能还会报这个错:
ImportError: DLL load failed while importing ft2font
解决方案:matplotlib版本太高:https://blog.csdn.net/weixin_48122003/article/details/109215715
谁闲的没事用C++调python的包画图啊!