首页 > 编程语言 >c++生成csv文件并在python界面可视化

c++生成csv文件并在python界面可视化

时间:2023-01-18 15:14:44浏览次数:44  
标签:文件 python csvfile c++ reader theta csv row

前景概要

为什么生成的是csv文件而不是txt文件 因为txt在python那边处理起来比较麻烦 需要两组数 而数与数之间存在对应关系 这样两组数同样需要两组 就是两组xy数值 然后将两组x对齐通过折线图的形式对比y值

C++生成csv代码

每次open都会对文件内容进行刷新 但是我还不太想让open和输入距离太远 所以这里采取的是在文件末尾追加的形式 但是每次重新运行都要在文件输出的位置新建和程序同名文件

std::ofstream out;
std::string   ss;
out.open("ubuntu绝对路径从根路径开始", std::ios::out |std::ios::app);
if (!out.is_open())
{
std::cout << "file is not open" << std::endl;
}
out.precision(4);
out << time << ",";
out << theta << std::endl;
out.close();

precision函数对精度进行控制
csv文件作为输出时 ","为分列输出 同样endl为换行输出

Python代码读取csv文件并使用matplotlib绘图

import csv
#用于读取csv文件
import matplotlib
#用于绘图
import matplotlib.pyplot as plt
from numpy import *
#用于求列表平均数
if __name__ == '__main__':
    filename = '文件1的位置'
    filename2 = '文件2的位置'
    data = {}
    data2 = {}
    dic = []
    timestamp = []
    theta_z = []
    timestamp2 = []
    theta_z2 = []
    with open(filename) as csvfile:
        next(csvfile)
        csv_reader = csv.reader(csvfile)
        for row in csv_reader:
            data[row[0]] = row[1]
            #float用于将字符串转化为浮点数
            time1.append(float(row[0]))
            theta1.append(float(row[1]))
    print(data)

    with open(filename2) as csvfile:
        next(csvfile)
        csv_reader = csv.reader(csvfile)
        for row in csv_reader:
            data2[row[0]] = row[1]
            time2.append(float(row[0]))
            theta2.append(float(row[1]))
    print(data2)
	#round函数用于控制精度
    time_ = [round(i, 4)for i in time1]
    theta_ = [round(i, 4)for i in theta1]
    #求列表平均数
    theta_mean = mean(theta_z_)

    time_2 = [round(i, 4)for i in time2]
    theta_2 = [round(i, 4) for i in theta2]

	#将两组数据输出在一个图上做对比
    plt.plot(time_, theta_)
    plt.plot(time_2, theta_2)
    plt.show()

标签:文件,python,csvfile,c++,reader,theta,csv,row
From: https://www.cnblogs.com/linglingdog/p/17059835.html

相关文章

  • 【C++】【Ctrl+CV即可食用】三维点拟合空间直线
    前景概述网上三维点拟合空间直线的代码很多大多数都是python或者matlab这里贴一个C++的代码原目的是拟合出直线之后任取两个点手动计算一下斜率数学原理最小二乘拟合......
  • Python工具箱系列(二十三)
    基于游标的操作游标是数据库操作的相对底层的能力。简单的操作如下:importmysql.connectorimportrandomhost='localhost'user='root'password='8848is8848'dbname=......
  • Python学习中的六个技巧小结
    1.引言“Beautifulisbetterthanugly.”上述为著名的TheZenofPython的第一句话,也是有追求的python开发人员的信条之一。所以我们的问题来了:如何编写漂亮的Python代......
  • python property使用
    classGoods():def__init__(self):self._price=""@propertydefprice(self):[email protected](self,val......
  • python 引用父类super
    classParent():def__init__(self,name):print(name)classSon(Parent):def__init__(self,name):super().__init__(name)s=Son(name="ccc")......
  • 类型提示和python函数中'->'的用法
    一、类型提示在python中,我们定义一个有参函数,调用该函数时需要传入参数,如下所示:#定义一个简单的函数defget_full_name(first_name,last_name):full_name=fir......
  • 如果有效python code review
    这篇文章主要介绍一些工具,方法,可以帮助我们做codepre-commit检查,这样我们做codereview之前,这些工具方法就帮我们解决了一些代码风格的问题和静态检查就能检查出来......
  • Python导入Excel表格数据并以字典dict格式保存
      本文介绍基于Python语言,将一个Excel表格文件中的数据导入到Python中,并将其通过字典格式来存储的方法。  我们以如下所示的一个表格(.xlsx格式)作为简单的示例。其中,表......
  • python3中(?P的正则应用
    importre'''其中?P可以理解为将字符串s分组处理并命名为province、city、block'''s='13g00x21yy'res=re.search('(?P<province>\d{2}).*(?P<city>\d{2}).*(?P<block>\d......
  • 使用Python的一维卷积
    学习&转载文章:使用Python的一维卷积背景在开发机器学习算法时,最重要的事情之一(如果不是最重要的话)是提取最相关的特征,这是在项目的特征工程部分中完成的。在CNNs中,此......