当前位置: 首页 > 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以及使用大全

http://www.lryc.cn/news/231403.html

相关文章:

  • 芯科科技推出新的8位MCU系列产品,扩展其强大的MCU平台
  • Flink CDC
  • 数据结构-链表的简单操作代码实现3-LinkedList【Java版】
  • JTS: 24 MinimumDiameter 最小矩形
  • MacOS Ventura 13 优化配置(ARM架构新手向导)
  • 多区域OSPF配置
  • 【强化学习】day1 强化学习基础、马尔可夫决策过程、表格型方法
  • openwrt Docker不能联网
  • EtherCAT从站EEPROM组成信息详解(2):字8-15产品标识区
  • SpringBoot--中间件技术-4:整合Shiro,Shiro基于会话SessionManager实现分布式认证,附案例含源代码!
  • 【QT基础入门】QT中的容器类
  • IDEA没有Add Framework Support解决办法
  • 《009.SpringBoot之汽车租赁系统》
  • 第四代智能井盖传感器,万宾科技助力城市安全
  • ClickHouse 面试题
  • Python代码运行速度提升技巧!Python远比你想象中的快~
  • P6入门:项目初始化11-项目详情之计算Calculations
  • <MySQL> 查询数据进阶操作 -- 联合查询
  • centos 6.10 安装 svn1.14.2
  • Java实现俄罗斯方块
  • 【计算思维】少儿编程蓝桥杯青少组计算思维题考试真题及解析B
  • 第三章 栈和队列【24王道数据结构笔记】
  • 保姆级教程之SABO-VMD-CNN-SVM的分类诊断,特征可视化
  • 跳跃游戏(贪心思想)
  • 【JavaSE语法】类和对象(二)
  • 【SA8295P 源码分析 (三)】121 - MAX9295A 加串器芯片手册分析 及初始化参数分析
  • Maya 2024 for Mac(3D建模软件)
  • 9. 深度学习——GAN
  • BeanUtils中的copyProperties方法使用
  • hivesql连续日期统计最大逾期/未逾期案例