首先安装python
https://www.python.org/downloads/windows/
安装时要勾选tcl/tk,否则之后将在绘图阶段会出错
Matplotlib is currently usingagg, which is a non-GUI backend

g++要和python都是32或者64位,达到链接库的兼容,否则在链接阶段会报错
g++查看位数的办法:
g++ -v

i686说明是23位
python查看位数的方法:
python

用到python的matplotlib库,使用pip工具进行安装,其中-i http://pypi.douban.com/simple --trusted-host pypi.douban.com选项是更换安装源,默认源下载太慢
pip install matplotlib -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
编辑代码
#include<Python.h>//python的c语言头文件
int main(int argc, const char* argv[]){
Py_Initialize();//使用python之前,要调用Py_Initialize()这个函数进行初始化
PyRun_SimpleString("import os,sys"); //PyRun_SimpleString执行python代码
PyRun_SimpleString("import matplotlib.pyplot as plt");
PyRun_SimpleString("sys.argv.append('D:/chezhe.py')");//设置python的argv[0]参数
PyRun_SimpleString("plt.plot([1,2,3,4], [1.1,2.1,3.4,4])");
PyRun_SimpleString("plt.plot([1,2,3,4], [3.3,2.3,1.3,1])");
PyRun_SimpleString("plt.show()");
Py_Finalize();//调用Py_Finalize
return 0;
}
由于是c语言调用python,对于python的argv[0]代表python当前文件名称是空的,会导致以下报错
baseName = os.path.basename(sys.argv[0])
IndexError: list index out of range
因此要设置一个python文件名。
使用matplotlib库的plot函数进行绘图
编译运行,使用-ID:\python\include -LD:\python\libs -lpython37指定python的c语言头文件和链接库文件目录,并且链接到python37.lib库文件,python的头文件和链接库目录分别位于安装目录下的include和libs文件夹下
g++ demo.c -std=c++11 -ID:\python\include -LD:\python\libs -lpython37
a.exe
结果
