MatplotCpp完全部署——我仍未完成的任务

MatplotCpp完全部署——我仍未完成的任务

写下标题时,我已经为Matplotcpp的部署努力了接近2天,我没有再看算法,没有再看其他领域的开发,没有再进行小组项目的研究,2天时间在我时而漫无目的地摸索和一次次同ai推心置腹中悄然流逝,我不为我的一些错误决定而导致的时间浪费而伤怀,因为我终将向我的目标稳步前进。就像现在,我有了些许实践的经验,我很乐意与心向此道的朋友们分享:

1,什么是Matplotcpp,我为什么想要它。

大学开设了物理实验课,我想有个东西替我做数据处理,绘制图表,当然,我知道Excel是更好的选择,但是,一是因为我不熟悉Excel,二是我最近在学C++方面的知识,Python也懂一些。所以我想找一个在C++框架下的绘图工具库,所以Matplotcpp无疑是最好的选择,后来想来,直接用Python调Matplot的话会更好一些。

C++成果展示图:
请添加图片描述

Python成果展示图:可以看到支持标题和坐标轴名称。
在这里插入图片描述
matplotcpp是一个用于 C++ 的轻量级 Matplotlib 接口,它允许你在 C++ 代码中使用类似 Python Matplotlib 的方式进行绘图。它的核心思想是通过 C++ 代码调用 Python 的 Matplotlib 实现绘图功能,非常适合那些希望在 C++ 项目中快速绘图但又不想学习复杂图形库的用户。

2,解题篇

从上面的描述中就不难看出,该库和Python紧密相连,所以我们首先需要确保电脑上安装了Python,根据我个人经验,建议安装Python3.8.0版本。我电脑上本来一直使用13版本,但是实际尝试中发现有库部分内容不在13版本中支持,根本运行不了,又改成了9.13(随便选的),昨天我看到9.13版本可以运行的时候我还很高兴,然后突然出现了2000+报错。请添加图片描述

其实我也不是没看到过现有的博客对该问题的论述,只是我没有意识到版本会对部署的成败起到这样关键的作用,我对docker,anaconda知之甚少,版本管理全靠该路径。之后一定去学习一下。这两天翻文件目录翻得,我可以很快速的在将近10级的文件夹中找到我想要的文件和路径。

我下载的Python(图片)
在这里插入图片描述

感谢canyuemanyue大佬的文章:vs2022部署matplotlibcpp库_matplotlibcpp安装-优快云博客

让我最终决定了在3.8.0上进行尝试Windows x86-64 executable installer 在官网安装该版本,然后在任意目录打开,勾选自动配置环境变量,进行安装,完成之后,再次点击安装程序,选择modify进行修改。

第二次(图片)
在这里插入图片描述

这次我们勾选这两个Debug,就会为我们生成pythonDebug扩展,以支持C扩展模块。

更多详细的关于PythonDebug和Release版本的知识,请看:VS2022中的Debug和Rlease-优快云博客

记住你的Python路径,一般情况下,都和图片中的差不多。

在C++里面部署matplotlibcpp库还需要python安装以下两个模块,numpy和matplotlib

我们用以下命令安装:

python -m pip install --upgrade pip
pip install numpy
pip install matplotlib

现在我们在matplotcpp的github页面上下载matplotcpp头文件,地址: GitHub - lava/matplotlib-cpp: Extremely simple yet powerful header-only C++ plotting library built on the popular matplotlib 你可以下载整个项目,也可以只下载matplotlibcpp.h,把它拖到你的项目目录里就好。

之后,我们在VS2022中新建一个空项目,我们需要主动配置项目属性。随便创建一个c++文件,打开项目属性。

在这里插入图片描述

如果不创建一个c++文件,这里就不会显示c/c++分类,点击C/C++常规,在附加包含目录中,拷贝python38/include地址和numpy/core/include地址进去,这里面包含了要用到的头文件,当然,你也可以将matplotcpp的文件地址放进去,这样在代码就可以使用尖括号包含它。(地址应该是"\" 我搞错了,不要在意)
请添加图片描述
接着,我们需要配置库目录和附加依赖项,库目录为python38和numpy的库目录路径,依赖项为python38/libs中的所有内容。
请添加图片描述
请添加图片描述
在这里插入图片描述
之后,想办法把Python38/目录下的几个dll文件放到Debug目录下,新项目刚创建什么都没有?你点一下编译就有了。。。

在这里插入图片描述

就可以尝试在项目中运行一下测试代码。

#include "matplotlibcpp.h"

namespace plt = matplotlibcpp;

int main()
{
    plt::plot({1,2,3,4});
    plt::show();
    return 0;
}

一般情况下,matplotlibcpp会报错,我们只需要注释掉部分报错代码就好。

在这里插入图片描述

3,并非结束

随着使用的深入,我发现一些函数无法在程序中使用,例如title,xlabel等,一旦使用,就会像下图一样报错。

在这里插入图片描述

我尝试了很多解法均告失败。所以我在代码中避开了这些函数,导致图像不如Python绘制那样完美。

4,结语

回过头来,部署的方法并不算难,只是涉及到了一些cpython的知识,导致我花费了两天才初窥门径,我也相信,这些尝试绝不会是没有意义的。

我用Matplotlibcpp制作了一个物理实验数据处理的程序,程序,代码,测试数据都已经上传github:https://github.com/kair998/Matplot

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值