当前位置: 首页 > news >正文

ubuntu下C++调用matplotlibcpp进行画图(超详细)

目录

一、换源

二、安装必要的软件

三、下载matplotlibcpp

四、下载anaconda

1.anaconda下载

2.使用anaconda配置环境

五、下载CLion

1.下载解压CLion

2.替换jbr文件夹 

3.安装CLion 

4.激活CLion  

5.CLion汉化

6.Clion配置

六、使用CLion运行

七、总结


我的环境:ubuntu18.04.6 LTS bionic 但是也不要需要一定是这个版本,应该是都可以用的

一、换源

如果你还没有换源,下载速度会非常慢,可以使用下面代码跟着换源

(感谢小鱼大佬提供 他的官网https://fishros.com/)

wget http://fishros.com/install -O fishros && . fishros

二、安装必要的软件

在 Ubuntu 上,你需要安装 python-matplotlib 包,该包包含 matplotlib 库,以及 python3-dev 包,其中包括必要的头文件。可以使用以下命令安装:

sudo apt-get update
sudo apt-get install python-matplotlib python3-dev

如果有yes/no  输入y即可。 

三、下载matplotlibcpp

需要安装matplotlibcpp,下载地址为https://github.com/lava/matplotlib-cpp

ubuntu系统可以直接使用代码安装,如下代码,我这里是直接在home目录下安装的

git clone https://mirror.ghproxy.com/https://github.com/lava/matplotlib-cpp.git

这里使用了github代理下载,国内速度会快一点 

四、下载anaconda

1.anaconda下载

这里下载anaconda会方便一点,如果你自己的环境十分了解,也可以不用下载,我是笨蛋我选择下载,注意选择linux版本,链接:Free Download | Anaconda(anaconda可以配置python环境)

下载好,找到路径执行下面命令(注意要执行你的版本!

bash Anaconda3-2023.09-0-Linux-x86_64.sh

执行后,一直按回车,直到问你yes还是no,选择yes 

问你是否安装在这个目录,建议安装,直接按回车,开始安装(大概5分钟,请耐心等待,等下还有问题,不要乱按)

他现在询问是否anaconda加入环境变量 ,选择yes添加,不然后面很麻烦

输入后,就下载完成了,打开安装好的anaconda目录终端

 下载好了anaconda,打开终端默认的是其base环境,有时并不常用的话会比较麻烦,可以使用如下代码设置默认终端打开时之前的环境

conda config --set auto_activate_base false

使用以下代码进入base环境。(代码知道就好,现在不用操作

conda activate

也可以使用代码退出base环境(代码知道就好,现在不用操作

conda deactivate

2.使用anaconda配置环境

使用下面代码在终端运行(询问y/n  选择y)

conda create --name forcppEnvs python==3.10

这里我们要先选择进入forcppEnvs环境,如下代码

conda activate forcppEnvs

前面会多刚刚我们设置的forcppEnvs环境

添加镜像源方便我们后续下载

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

 我这里已经安装好了,所以写的already。

进入anaconda/envs/fdrcppEnvs里面运行下面两个代码,安装numpy库和matplotlib库

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpypip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib

图片如下,安装完毕。 

五、下载CLion

1.下载解压CLion

点击下载,注意查看是否为linux CLion Linux

解压文件,先要打开你下载的目录,还要注意后面的CLion是你下载的文件,用tab可以补齐

tar -xzf CLion-2023.2.2.tar.gz

2.替换jbr文件夹 

jetbrains全家桶在Ubuntu中使用会出现输入法不跟随的问题,需要将源文件中的jbr文件夹替换来解决

先在github上下载好别人重新编译过的jbr文件

如果很慢也可以复制链接到windows迅雷下载,在复制到虚拟机中。 

下载好解压,对压缩包右击-》提取到此处,或者之前的命令行解压,解压完毕更名为jbr

复制jbr到clion文件夹中,选择全部合并和替换 

3.安装CLion 

我比较喜欢把他放到home目录,使用下面代码移动到home目录 

mv clion-2023.2.2/ ~
cd ~
cd clion-2023.2.2/bin/
sh clion.sh 

4.激活CLion  

需要激活可以直接买,或者点击试一试。

5.CLion汉化

新建项目进入

装好之后重新点击restart重新启动

这里选择创建桌面条目,方便我们后面打开(不需要每次都sh clion.sh)

6.Clion配置

在设置里面查看

运行如下代码安装C和C++编译器

sudo apt-get updatesudo apt-get install build-essential

六、使用CLion运行

编辑CMakeLists.txt,代码如下  

注意下面代码的路径如“/home/kangkang/anaconda3/envs/forcppEnvs/include/python3.10”kangkang是我自己的用户名,你需要改成自己的,下面代码三个地方都要修改,可以去命令行cd一下,验证路径是否正确。

最后一个地方需要修改的是“add_executable(test main.cpp)”中test是之前“project(test)”的名字,保证跟他一样即可,后面main.cpp是我主函数的名字

cmake_minimum_required(VERSION 3.26)  # 设置cmake最小版本3.26(我们下载的是3.27)
project(test)   # test可以随意设置(是运行的名字)set(CMAKE_CXX_STANDARD 17) #(选择C++17)find_package(PythonLibs REQUIRED)
#下面两句代码路径要改成你自己的
set(PYTHON_INCLUDE_DIRS /home/kangkang/anaconda3/envs/forcppEnvs/include/python3.10)
set(PYTHON_LIBRARIES /home/kangkang/anaconda3/envs/forcppEnvs/lib/libpython3.10.so)
include_directories(${PYTHON_INCLUDE_DIRS})# 添加 Matplotlib 的头文件路径  路径改成你自己的
include_directories(/home/kangkang/matplotlib-cpp/)add_executable(test main.cpp)# 链接 Python 和 Matplotlib 库
target_link_libraries(test ${PYTHON_LIBRARIES})

 main.c代码如下

#include "matplotlibcpp.h"namespace plt = matplotlibcpp;int main() {plt::plot({1, 2, 3, 4});plt::show();return 0;
}

运行结果如下,终于完成啦。 

七、总结

文章有一点长,因为我是小白,找了很多网上的方法才完成。大佬技术很好,因此写得文章并不会那么详细,我这种小白看起来有点吃力,因此我写的尽可能详细一点,如果你遇到了什么问题,可以发到评论区,我会尽我所能帮助你。

可以点个赞吗?谢谢支持!!!


参考文章

Ubuntu下使用c++调用matplotlibcpp绘图

在读学生自学Ubuntu20.04用C++调用matplotlib历程

ubuntu下安装Clion

ubuntu下安装Anaconda3以及使用大全

相关文章:

ubuntu下C++调用matplotlibcpp进行画图(超详细)

目录 一、换源 二、安装必要的软件 三、下载matplotlibcpp 四、下载anaconda 1.anaconda下载 2.使用anaconda配置环境 五、下载CLion 1.下载解压CLion 2.替换jbr文件夹 3.安装CLion 4.激活CLion 5.CLion汉化 6.Clion配置 六、使用CLion运行 七、总结 我的环…...

芯科科技推出新的8位MCU系列产品,扩展其强大的MCU平台

新的BB5系列为简单应用提供更多开发选择 中国,北京 - 2023年11月14日 – 致力于以安全、智能无线连接技术,建立更互联世界的全球领导厂商Silicon Labs(亦称“芯科科技”,NASDAQ:SLAB),今日宣布…...

Flink CDC

1、Flink CDC的介绍: 是一种技术,可以帮助我们实时的捕获数据库中数据的变化,并将这些变化的数据以流的形式传输到其他的系统中进行处理和存储。 2、Flink CDC的搭建: 1、开启mysql的binlog功能: # 1、修改mysql配置…...

数据结构-链表的简单操作代码实现3-LinkedList【Java版】

写在前: 本篇博客主要介绍关于双向链表的一些简答操作实现,其中有有部分代码的实现和前两篇博客中的单向链表是相类似的。例如:查找链表中是否包含关键字key、求链表的长度等。 其余的涉及到prev指向的需要特别注意,区分和单向链表之间的差异…...

JTS: 24 MinimumDiameter 最小矩形

文章目录 版本代码 版本 org.locationtech.jts:jts-core:1.19.0 链接: github 代码 package pers.stu.algorithm;import org.locationtech.jts.algorithm.MinimumDiameter; import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.Geometry; import…...

MacOS Ventura 13 优化配置(ARM架构新手向导)

一、系统配置 1、About My MacBook Pro 2、在当前标签打开新窗口 桌面上创建目录的文件夹,每次新打开一个目录,就会创建一个窗口,这就造成窗口太多,不太好查看和管理,我们可以改成在新标签处打开新目录。需要在&…...

多区域OSPF配置

配置命令步骤: 1.使用router ospf 进程ID编号 启用OSPF路由 2.使用network 直连网络地址 反掩码 area 区域号 将其归于对应区域 注意: 1.进程ID编号可任意(1-65535) 2.反掩码用4个255相减得到 3.area 0 为主干区域 4.连接不…...

【强化学习】day1 强化学习基础、马尔可夫决策过程、表格型方法

写在最前:参加DataWhale十一月组队学习记录 【教程地址】 https://github.com/datawhalechina/joyrl-book https://datawhalechina.github.io/easy-rl/ https://linklearner.com/learn/detail/91 强化学习 强化学习是一种重要的机器学习方法,它使得智能…...

openwrt Docker不能联网

文章参考:docker上网(docker安装openwrt无法上网) - 老白网络 外网不能访问内网是应为防火墙。内网访问外网如下: 清理容器垃圾 docker volume prune -f 创建一个网络 docker network create --subnet172.18.0.0/16 mynet 通过该网络创建gerrit docker run -tid --name ge…...

EtherCAT从站EEPROM组成信息详解(2):字8-15产品标识区

0 工具准备 1.EtherCAT从站EEPROM数据(本文使用DE3E-556步进电机驱动器)1 字8-字15产品标识区 1.1 产品标识区组成规范 对于不同厂家和型号的从站,主站是如何区分它们的呢?这就要提起SII的字8-字15区域存储的产品标识&#xff…...

SpringBoot--中间件技术-4:整合Shiro,Shiro基于会话SessionManager实现分布式认证,附案例含源代码!

SpringBoot整合安全中间件Shiro 技术栈&#xff1a;SpringBootShiro 代码实现 pom文件加坐标 Springboot版本选择2.7.14 &#xff1b;java版本1.8 &#xff1b; shiro做了版本锁定 1.3.2 <properties><java.version>1.8</java.version><!--shiro版本锁定…...

【QT基础入门】QT中的容器类

QT中有多种容器类,它们可以用来存储和操作不同类型的数据。根据容器的特性和用途,可以分为以下几类: 序列容器 这些容器按照一定的顺序存储数据,可以通过下标或迭代器访问。QT中的序列容器有: QList: 这是最通用的序列容器,它在内部实现为一个数组列表,可以快速地在头…...

IDEA没有Add Framework Support解决办法

点击File—>Settings 点击第一个设置快捷键 点击apply和ok即可 我们要点击一下项目&#xff0c;再按快捷键ctrlk 即可...

《009.SpringBoot之汽车租赁系统》

《009.SpringBoot之汽车租赁系统》 项目简介 [1]本系统涉及到的技术主要如下&#xff1a; 推荐环境配置&#xff1a;DEA jdk1.8 Maven MySQL 前后端分离; 后台&#xff1a;SpringBootMybatisPlus; 前台&#xff1a;Layuivue; [2]功能模块展示&#xff1a; 前端门户 1.登录&a…...

第四代智能井盖传感器,万宾科技助力城市安全

在迈向更为智能化、相互联系更为紧密的城市发展过程中&#xff0c;智能创新产品无疑扮演了一种重要的角色。智能井盖传感器作为新型科学技术产物&#xff0c;不仅解决传统井盖管理难的问题&#xff0c;也让城市变得更加安全美好&#xff0c;是城市生命线的一层重要保障。这些平…...

ClickHouse 面试题

文章目录 什么是 ClickHouse&#xff1f;ClickHouse 有哪些应用场景&#xff1f;ClickHouse 列式存储的优点有哪些&#xff1f;ClickHouse 的缺点是是什么&#xff1f;ClickHouse 的架构是怎样的&#xff1f;ClickHouse 的逻辑数据模型&#xff1f;ClickHouse 的核心特性&#…...

Python代码运行速度提升技巧!Python远比你想象中的快~

文章目录 前言一、使用内置函数二、字符串连接 VS join()三、创建列表和字典的方式四、使用 f-Strings五、使用Comprehensions六、附录- Python中的内置函数总结关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项…...

P6入门:项目初始化11-项目详情之计算Calculations

前言 使用项目详细信息查看和编辑有关所选项目的详细信息&#xff0c;在项目创建完成后&#xff0c;初始化项目是一项非常重要的工作&#xff0c;涉及需要设置的内容包括项目名&#xff0c;ID,责任人&#xff0c;日历&#xff0c;预算&#xff0c;资金&#xff0c;分类码等等&…...

<MySQL> 查询数据进阶操作 -- 联合查询

目录 一、什么是笛卡尔积&#xff1f; 二、什么是联合查询&#xff1f; 三、内连接 3.1 简介 3.2 语法 3.3 更多的表 3.4 操作演示 四、外连接 4.1 简介 4.2 语法 4.3 操作演示 五、自连接 5.1 简介 5.2 自连接非必要不使用 六、子查询(嵌套查询) 6.1 简介 6.…...

centos 6.10 安装 svn1.14.2

安装 apr 和 apr-util 下载地址 我下载的分别是 apr-1.7.4 和 apr-unit-1.6.3 常规的安装步骤 ./configure --prefix/usr/local/xxx make && make install注意要先安装 apr 再安装 apr-unit-1.6.3 安装 lz4 下载地址 要配置好环境变量&#xff0c;不然可能还是找…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...