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

news2024/11/26 12:40:22

目录

一、换源

二、安装必要的软件

三、下载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 numpy

pip 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 update

sudo 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.coloradmin.cn/o/1213527.html

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

相关文章

posix定时器的使用

POSIX定时器是基于POSIX标准定义的一组函数,用于实现在Linux系统中创建和管理定时器。POSIX定时器提供了一种相对较高的精度,可用于实现毫秒级别的定时功能。 POSIX定时器的主要函数包括: timer_create():用于创建一个定时器对象…

Kubernetes(k8s)介绍和环境部署

文章目录 Kubernetes一、Kubernetes介绍1.Kubernetes简介2.Kubernetes概念3.Kubernetes功能4.Kubernetes工作原理5.kubernetes组件6.Kubernetes优缺点 二、Kubernetes环境部署环境基本配置1.所有节点安装docker2.所有节点安装kubeadm、kubelet、kubectl添加yum源containerd配置…

LeetCode(16)接雨水【数组/字符串】【困难】

目录 1.题目2.答案3.提交结果截图 链接: 42. 接雨水 1.题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&…

PbootCMS 应用快速迁移至浪潮信息 KeyarchOS 云服务器

本文我们以 PbootCMS 应用为例,详细介绍如何使用 X2Keyarch 迁移工具将其从 CentOS 系统迁移到浪潮信息 KeyarchOS 系统。 背景介绍 众所周知,CentOS 是最流行的红帽克隆版,因为免费,所以它的安装量甚至比红帽本身要大得多。本来…

Feature Pyramid Networks for Object Detection(2017.4)

文章目录 Abstract1. Introduction3. Feature Pyramid NetworksBottom-up pathwayTop-down pathway and lateral connections 7. Conclusion FPN Abstract 特征金字塔是识别系统中检测不同尺度物体的基本组成部分。但最近的深度学习对象检测器避免了金字塔表示,部分…

python科研绘图:绘制X-bar图

目录 1.X-bar 图的基本概念 2.X-bar 图的绘制过程 3.X-bar 图的优势 4.X-bar 图的绘制 1.X-bar 图的基本概念 X-bar控制图是一种统计工具,用于监控和控制生产过程中的质量变量。它是过程能力分析和统计过程控制(SPC,Statistical Process…

微机原理_9

一、单项选择题(本大题共15小题,每小题3分,共45分。在每小题给出的四个备选项中,选出一个正确的答案。 1.当运算结果的最高位为1时,标志位() A. CF1 B. OF1 C. SF1 D. ZF1 2、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可…

构造函数和初始化列表的关系和区别【详解】

构造函数和初始化列表关系和区别,以及为什么有初始化列表,和它的好处 一、构造函数和初始化列表的关系和区别二、为什么有初始化列表三、使用初始化列表的好处 一、构造函数和初始化列表的关系和区别 百度百科这样定义初始化列表:与其他函数…

使用手机作为电脑的麦克风和摄像头外设

工具 Iriun Iriun 电脑端安装:Iriun Android: Iriun 4K Webcam for PC and Mac - Apps on Google Play Apple: Iriun Webcam for PC and Mac on the App Store 基础功能免费,普通使用足够了。 付费功能: 使用 这里有介绍&#xff1a…

【Java】详解多线程同步的三种方式

🌺个人主页:Dawn黎明开始 🎀系列专栏:Java ⭐每日一句:等风来,不如追风去 📢欢迎大家:关注🔍点赞👍评论📝收藏⭐️ 文章目录 一.🔐线…

MAC地址_MAC地址格式_以太网的MAC帧_详解

MAC地址 全世界的每块网卡在出厂前都有一个唯一的代码,称为介质访问控制(MAC)地址 一.网络适配器(网卡) 要将计算机连接到以太网,需要使用相应的网络适配器(Adapter),网络适配器一般简称为“网卡”。在计算机内部,网卡与CPU之间的通信&…

【UE C++】读取文本文件,并解析

目录 0 引言1 空格 制表符 换行符1.1 定义1.2 查看字符 2 实战 🙋‍♂️ 作者:海码007📜 专栏:UE虚幻引擎专栏💥 标题:❣️ 寄语:书到用时方恨少,事非经过不知难!&#x…

C进阶---字符函数和字符串函数

目录 一、长度不受限限制的字符串函数 1.1strlen 1.2strcpy 1.3strcat 1.4strcmp 二、长度受限制的字符串函数 2.1strncpy 2.2strncat 2.3strncmp 三、其他字符串函数 3.1strstr 3.2strtok 3.3sterror 3.4memcpy 3.5memmove 3.6memcmp 四、字符分类函…

c语言:如何打印杨辉三角形。

题目:打印杨辉三角形 如: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 思路和代码: //由规律不难得出,每行首个数字和最后最后一个数字都为1,其余数字是这列的上一个数字和前一个数字的和组成,由此推出代码 #de…

Openssl X509 v3 AuthorityKeyIdentifier实验与逻辑分析

Openssl是X509的事实标准,目前主流OS或个别安全性要求较高的设计场景,对X509的证书链验证已经不在停留在只从数字签名校验了,也就是仅仅从公钥验签的角度,在这些场景中,往往还会校验AuthorityKeyIdentifier和SubjectKe…

【文件包含】metinfo 5.0.4 文件包含漏洞复现

1.1漏洞描述 漏洞编号————漏洞类型文件包含漏洞等级⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐漏洞环境windows攻击方式 MetInfo 是一套使用PHP 和MySQL 开发的内容管理系统。MetInfo 5.0.4 版本中的 /metinfo_5.0.4/about/index.php?fmodule文件存在任意文件包含漏洞。攻击者可利用漏洞读取网…

第十九章 Java绘图

第十九章 java绘图 19.1 java绘图类 绘图时高级程序设计中非常重要的技术,例如,应用程序可以绘制闪屏图片,背景图片,组件外观等等,Web程序可以绘制统计图,数据库存储图片资源等,真骨耸为“一…

服务名无效。 请键入 NET HELPMSG 2185以获得更多的帮助

遇到的问题是MySQL服务没有。 因为net start 服务名,启动的是win下注册的服务。此时,我系统中并没有注册mysql到服务中。即下面没有mysql服务。 mysqld --install net start mysql

2023.11.15 每日一题(AI自生成应用)【C++】【Python】【Java】【Go】 动态路径分析

目录 一、题目 二、解决方法 三、改进 一、题目 背景: 在一个城市中,有数个交通节点,每个节点间有双向道路相连。每条道路具有一个初始权重,代表通行该路段的成本(例如时间、费用等)。随着时间的变化&am…

nodejs+vue黄河风景线旅游网站的设计与实现-微信小程序-安卓-python-PHP-计算机毕业设计

本文首先对该系统进行了详细地描述,然后对该系统进行了详细的描述。管理人员增加了系统首页、个人中心、用户管理、景点分类管理、景点简介管理、旅游路线管理、文章分类管理、公告文章管理、系统管理理等功能。这套黄河风景线旅游网站是根据当前的现实需要&#xf…