C++和matplotlib混合编程时,plot()函数无法正确显示传入的vector的图像

问题描述:C++和matplotlib混合编程时,plot()函数无法正确显示传入的vector的图像

img

我如果将参数写成简单的vectorS = {1,2,3}就能显示

img

有专家知道为什么吗?

在 C++ 和 Matplotlib 混合编程时,您需要确保正确地初始化和使用 Matplotlib 绘图窗口。如果您使用的是 plot() 函数来绘制向量的图像,并且无法正确显示,那么可能是由于没有正确初始化 Matplotlib 绘图窗口导致的。

当你将参数写成简单的 vector<int> vectorS = {1,2,3} 时,Matplotlib 可以自动识别并显示该向量的图像。这是因为 Matplotlib 可以自动检测并处理简单的向量类型。但是,如果您使用 plot() 函数来绘制向量的图像,并且无法正确显示,那么可能是由于没有正确初始化 Matplotlib 绘图窗口导致的。

可以使用以下代码来初始化 Matplotlib 绘图窗口并绘制向量的图像:

#include <iostream>
#include <vector>
#include <matplotlib.h>

using namespace std;

int main() {
    // 初始化 Matplotlib 绘图窗口
    plt::init_params();
    plt::set_default_font_size(12);
    plt::io::savefig("output.png");

    // 绘制向量的图像
    vector<int> vectorS = {1, 2, 3};
    for (int i = 0; i < vectorS.size(); i++) {
        plt::plot(vectorS[i], 1, 'o');
    }

    // 显示图像
    plt::show();

    return 0;
}

在这个示例中,使用 plt::init_params() 函数来初始化 Matplotlib 绘图窗口,并使用 plt::io::savefig() 函数将图像保存为 PNG 文件。然后使用 plt::plot() 函数来绘制向量的图像,并使用循环来遍历向量的每个元素。最后使用 plt::show() 函数来显示图像。

请注意根据实际情况修改代码中的字体大小和保存文件路径。