matplotlib-cpp是一个用于在C++中使用matplotlib绘图库的头文件库。它提供了一个简单的接口,使得在C++中创建和显示图形变得更加容易。这个库的灵感来自于Python的matplotlib库,它使得在C++中进行数据可视化变得更加便捷。

matplotlib-cpp允许在C++中使用类似Python中matplotlib的语法和功能来创建各种类型的图形,包括折线图、散点图、柱状图等。你可以使用它来可视化数据,分析模拟结果,或者创建漂亮的图形报告。

由于matplotlib-cpp是一个只含头文件的库,因此直接从github下载matplotlib-cpp的头文件就可以直接用了。

或者可以用vcpkg下载并安装matplotlib-cpp,其实两种方式都差不多,都是把这个头文件下载下来就可以了。

我就用vcpkg来下载吧。

到vcpkg的默认安装目录下就可以看到matplotlibcpp.h的头文件了。

打开VS2022创建一个C++控制台项目,然后导入头文件和库文件,由于matplotlib-cpp需要python的库文件和头文件所以需要安装python。

下面是分别要导入的头文件和库文件,把路径改为你的安装路径就可以了,下面这个vcpkg的include路径下面装的就是matplotlib-cpp.h头文件,换成你的头文件所在路径就可以了,因为matplotlib-cpp是一个只含头文件的库,没有链接库文件。

D:\c.app\Python3.9.0\include
D:\c.app\vcpkg\installed\x64-windows\include
D:\c.app\Python3.9.0\Lib\site-packages\numpy\core\include
D:\c.app\Python3.9.0\libs

 博主的python和vcpkg都安装在D盘,所以可以比较轻松找到对应的头文件和库文件。

把这段代码复制到cpp文件中,然后运行代码。

#include <matplotlibcpp.h>
namespace plt = matplotlibcpp;

int main() {
    std::vector<double> x = { 1, 2, 3, 4, 5 };
    std::vector<double> y = { 2, 4, 6, 8, 10 };

    plt::plot(x, y);
    plt::xlabel("X");
    plt::ylabel("Y");
    plt::title("Simple Plot");
    plt::show();

    return 0;
}

然后就报错了。 

错误一

1>D:\c.app\vcpkg\installed\x64-windows\include\matplotlibcpp.h(2014,85): error C2039: "stod": 不是 "std" 的成员
1>D:\c.app\vcpkg\installed\x64-windows\include\matplotlibcpp.h(2014,85): error C3861: “stod”: 找不到标识符

这个错误需要在matplotlib-cpp.h里面加入string头文件才可以。

错误二

1>D:\c.app\vcpkg\installed\x64-windows\include\matplotlibcpp.h(340,20): error C2766: 显式专用化;已定义“matplotlibcpp::detail::select_npy_type<int64_t>”
1>D:\c.app\vcpkg\installed\x64-windows\include\matplotlibcpp.h(342,20): error C2766: 显式专用化;已定义“matplotlibcpp::detail::select_npy_type<uint64_t>”

 这个错误需要将对应位置的重定义代码注释掉

然后保存matplotlib-cpp.h文件。

运行代码,发现运行成功。

除此之外,你们可能还会遇到一个问题

LINK : fatal error LNK1104: 无法打开文件“python39_d.lib”

 这个问题主要是因为你的python版本是Release版本的,而不是Debug版本的,python39_d.lib是Debug版本的python专属的链接库文件,那么只需要把VS2022的模式改为Release版就行了。

改为Release版本后,前面的头文件和库文件需要重新导入一次哦!

GitHub 加速计划 / vc / vcpkg
8
1
下载
vcpkg - 一个用于管理 C 和 C++ 库的工具,支持在 Windows、Linux 和 macOS 上安装和集成各种库。
最近提交(Master分支:3 个月前 )
1f65d845 1 天前
6de717b7 1 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐