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

1|0前景概要

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

2|0C++生成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为换行输出

3|0Python代码读取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()

__EOF__

本文作者铃灵狗的水墨书香
本文链接https://www.cnblogs.com/linglingdog/p/17059835.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   铃灵狗  阅读(145)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示