_KATANA_ 2023-07-28 19:12 采纳率: 60%
浏览 8
已结题

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

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

img

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

img

有专家知道为什么吗?

  • 写回答

1条回答 默认 最新

  • A11000100A 2023-07-28 21:59
    关注

    在 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() 函数来显示图像。

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月6日
  • 已采纳回答 7月29日
  • 创建了问题 7月28日

悬赏问题

  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计