Windows11平台C++在VS2022中安装和使用Matplot++绘图库的时候出现的问题和解决方法

Matplot++ 是一个基于 C++ 的绘图库,专门用于绘制高质量的数据图表。它提供了一个简洁而强大的接口,使得用户能够轻松地创建各种类型的图表,包括线图、散点图、柱状图、饼图等。Matplot++ 的设计目标是提供与 MATLAB 相似的绘图体验,同时利用 C++ 的性能和灵活性。(这个和隔壁的matplotlib-cpp不是一个库哦,matplot++是纯C++的绘图库)。

 我们创建一个C++的控制台项目。

#include <matplot/matplot.h>
int main() {using namespace matplot;std::vector<double> x = { 1, 2, 3, 4, 5 };std::vector<double> y = { 1, 4, 2, 5, 3 };plot(x, y);show();return 0;
}

复制代码并运行然后就报错了。

1>D:\c.app\vcpkg\installed\x64-windows\include\matplot\util\common.h(23,23): error C2039: "string_view": 不是 "std" 的成员
1>D:\c.app\vcpkg\installed\x64-windows\include\matplot\util\common.h(23,23): error C2065: “string_view”: 未声明的标识符

这是由于这个库不支持C++11版本,只支持C++17及以上的版本。

第二个问题,空指针异常。

Unhandled exception at 0x00007FFE9ECECF19 in MatplotPlusPlus__test.exe: 
Microsoft C++ exception: std::runtime_error at memory location 0x000000F632EFEC68.

这个问题是因为matplot++这个库的绘图功能是依赖于gunplot这个库的,gunplot相当方便安装,只需要下载.exe文件,然后安装就可以了。

gnuplot - Browse /gnuplot/6.0.1 at SourceForge.net

自己定义好安装路径然后下一步安装就可以了。

将gnuplot的.exe文件加入到系统环境变量Path中。

再将gnuplot的链接库文件导入到VS2022中。

你们也注意到了,博主没有在VS2022中导入matplot++这个库的库文件和头文件,但是程序运行可以通过,这是因为博主使用了Vcpkg安装matplot++,Vcpkg自动将这个库的头文件路径和库文件路径集成到了VS2022中,因此不需要手动导入。Vcpgk自动生成了一个系统环境变量,这个变量里面的路径就是matplot++的路径,VS2022可以自动找到这个路径里面的库。如何用Vcpkg安装库,大家可以看我之前的博客哦,说的非常详细。

打开路径就可以看到库的头文件目录了。

再次运行代码,成功绘制图形。

matplot++可以绘制非常多种类的图形,详情见官网Home - Matplot++

#include <cmath>
#include <matplot/matplot.h>std::vector<std::pair<size_t, size_t>> get_edges();int main() {using namespace matplot;std::vector<std::pair<size_t, size_t>> edges = {{0, 1},   {0, 2},   {0, 3},   {0, 4},   {1, 5},  {1, 6},  {1, 7},{1, 8},   {1, 9},   {1, 10},  {1, 11},  {1, 12}, {1, 13}, {1, 14},{14, 15}, {14, 16}, {14, 17}, {14, 18}, {14, 19} };digraph(edges);show();return 0;
}

 

#include <cmath>
#include <matplot/matplot.h>int main() {using namespace matplot;std::vector<double> lon =transform(linspace(-170, 170, 3000),[](double x) { return x + 10. * rand(0, 1); });std::vector<double> lat = transform(lon, [](double x) { return 50. * cosd(3 * x) + 10 * rand(0, 1); });std::vector<double> weights =transform(lon, [](double lon) { return 101. + 100 * (sind(2 * lon)); });geodensityplot(lat, lon);show();return 0;
}

哈哈哈,下面这个图乱码了 ,可能是编码格式的问题,无伤大雅!。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/31111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在编译内核时添加驱动的固件

最近调驱动时&#xff0c;无法正常加载引导。 使用的内核5.10 内核启动先于文件系统&#xff0c;内核启动时驱动无法访问固件文件&#xff0c;所以无法加载驱动。 有2个办法&#xff0c;可以解决&#xff0c;一是驱动编译KO模块&#xff0c;系统启动后&#xff0c;再动态加载…

Spring Boot 3 整合 SpringDoc OpenAPI 生成接口文档

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

Unity 工具 之 Azure 微软 【GPT4o】HttpClient 异步流式请求的简单封装

Unity 工具 之 Azure 微软 【GPT4o】HttpClient 异步流式请求的简单封装 目录 Unity 工具 之 Azure 微软 【GPT4o】HttpClient 异步流式请求的简单封装 一、简单介绍 二、实现原理 三、注意实现 四、简单效果预览 五、案例简单实现步骤 六、关键代码 一、简单介绍 Unit…

网络安全:Web 安全 面试题.(XSS)

网络安全&#xff1a;Web 安全 面试题.&#xff08;XSS&#xff09; 网络安全面试是指在招聘过程中,面试官会针对应聘者的网络安全相关知识和技能进行评估和考察。这种面试通常包括以下几个方面&#xff1a; &#xff08;1&#xff09;基础知识:包括网络基础知识、操作系统知…

超级好用的JSON格式化可视化在线工具

JSON是开发非常常用的一种报文格式&#xff0c;最常见的需求就是将JSON进行格式化&#xff0c;最好是有图形化界面显示结构关系&#xff0c;以便进行数据分析。 理想的在线JSON工具&#xff0c;应该支持快速格式化、可压缩、快捷复制、可下载导出&#xff0c;对存在语法错误的地…

网络与协议安全复习 - 系统安全部分

文章目录 恶意软件什么是恶意软件传播机制和载荷传播载荷 DDoS 攻击和防范 防火墙什么是防火墙防火墙类型防火墙载体 入侵检测入侵者入侵检测蜜罐技术 口令管理基于Bloom过滤器的口令检查技术 恶意软件 什么是恶意软件 恶意软件定义为&#xff1a;隐蔽植入另一段程序的程序&a…

Node.js单点登录SSO详解:Session、JWT、CORS让登录更简单

文章目录 一、SSO介绍1、使用SSO的好处 二、中间件介绍1、Express安装导入使用 2、cors安装导入配置 3、express-session安装导入配置使用 4、jsonwebtoken安装导入使用 5、jwt和session对比 三、SSO实现方案1、安装依赖2、结构3、实现原理 三、示例代码1、nodejs端 server/ind…

React是怎么进行事件处理的

什么是事件&#xff1f; 事件是指一些可以通过脚本响应的页面动作。当用户按下鼠标或者提交一个表单等等时候&#xff0c;事件都会出现。事件处理是一段JavaScript代码&#xff0c;总是与页面中的特定部分以及一定的事件相关联。当与页面特定部分相关联的事件发生时&#xff0c…

MDK-ARM 编译后 MAP 文件分析

本文配合 STM32 堆栈空间分布 食用更佳&#xff01; 一图胜千言。。。

pytorch十大核心操作

PyTorch的十大核心操作涵盖了张量创建、数据转换、操作变换等多个方面。以下是结合参考文章信息整理出的PyTorch十大核心操作的概述&#xff1a; 张量创建&#xff1a; 从Python列表或NumPy数组创建张量。使用特定值创建张量&#xff0c;如全零、全一、指定范围、均匀分布、正…

开发环境安装---Visual Studio Code

开发环境安装---Visual Studio Code 1.官网下载Visual Studio Code2.安装步骤3.安装插件 1.官网下载Visual Studio Code VScode: https://code.visualstudio.com/ Visual Studio Code 简称 VSCode &#xff0c;2015 年由微软公司发布。可用于 Windows&#xff0c;macOS 和 Li…

HTML(17)——圆角和盒子阴影

盒子模型——圆角 作用&#xff1a;设置元素的外边框为圆角 属性名&#xff1a;border-radius 属性值&#xff1a;数字px/百分比 也可以每个角设置不同的效果&#xff0c;从左上角顺时针开始赋值&#xff0c;没有取值的角与对角取值相同。 正圆 给正方形盒子设置圆角属性…

数据库实战(二)(引言+关系代数)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;数据库 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 前言 常见概念 一、什么是数据库&#xf…

【鸿蒙】HUAWEI DevEco Studio安装

HUAWEI DevEco Studio介绍 面向HarmonyOS应用及元服务开发者提供的集成开发环境(IDE)&#xff0c; 助力高效开发。 DevEco Studio当前最新版本是&#xff1a; 3.1。 DevEco Studio计划里程碑 版本类型说明 下载 下载网址&#xff1a;DevEco Studio安装包官⽅下载 双击运行…

C++ | Leetcode C++题解之第169题多数元素

题目&#xff1a; 题解&#xff1a; class Solution { public:int majorityElement(vector<int>& nums) {int candidate -1;int count 0;for (int num : nums) {if (num candidate)count;else if (--count < 0) {candidate num;count 1;}}return candidate;…

STM32通过Flymcu串口下载程序

文章目录 1. Flymcu 2. 操作流程 2.1 设备准备 2.2 硬件连接 2.3 设置BOOT引脚 2.4 配置 2.5 下载程序 1. Flymcu Flymcu软件可以通过串口给STM32下载程序&#xff0c;如果没有STLINK的时候&#xff0c;就可以使用这个来烧录程序。软件不用安装&#xff0c;直接打开就行…

Windows11+CUDA12.0+RTX4090如何配置安装Tensorflow2-GPU环境?

1 引言 电脑配置 Windows 11 cuda 12.0 RTX4090 由于tensorflow2官网已经不支持cuda11以上的版本了&#xff0c;配置cuda和tensorflow可以通过以下步骤配置实现。 2 步骤 &#xff08;1&#xff09;创建conda环境并安装cuda和cudnn&#xff0c;以及安装tensorflow2.10 con…

[Python学习篇] Python字典

字典是一种可变的、无序的键值对&#xff08;key-value&#xff09;集合。字典在许多编程&#xff08;Java中的HashMap&#xff09;任务中非常有用&#xff0c;因为它们允许快速查找、添加和删除元素。字典使用花括号 {} 表示。字典是可变类型。 语法&#xff1a; 变量 {key1…

CIRCOS圈图绘制 - circos安装

Circos是绘制圈图的神器&#xff0c;在http://circos.ca/images/页面有很多CIRCOS可视化的示例。 Circos可以在线使用&#xff0c;在线使用时是把表格转为圈图&#xff0c;不过只允许最大75行和75列&#xff1b;做一些简单的示意图会比较好&#xff0c;最后时会介绍下在线的tab…

第二十四篇——纠错码:对待错误的正确态度是什么?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 当我们面对错误的发生&#xff0c;是一个确定事件的时候&#xff1b;我们…