python读取csv表格数据,生成折线图

生成一个python类,主要解决问题,读取csv表格中的数据,生成一个折线图。

  1. 输入原数据文件路径,例如: test.csv
  2. 按顺序输入需要使用到的数据列,例如:1,2,3
  3. 会将输入的第一列作为X轴,其他列作为Y轴数据进行填充。
import pandas as pd
import matplotlib.pyplot as pltclass CSVLinePlotter:def __init__(self, file_names):self.file_names = file_namesdef extract_data(self, selected_columns):data_frames = [pd.read_csv(file_name, delimiter=',', encoding='utf_8_sig')[selected_columns] for file_name inself.file_names]combined_df = pd.concat(data_frames)return combined_dfdef display_column_names(self, column_names):print("列名列表:")for i, column in enumerate(column_names, start=1):print(f"{i}. {column}")def get_selected_columns(self, column_names):self.display_column_names(column_names)selected_columns_indices = input("请输入要导出的列的编号(用逗号分隔): ")selected_columns_indices = [int(index) - 1 for index in selected_columns_indices.split(',') if1 <= int(index) <= len(column_names)]selected_columns = [column_names[index] for index in selected_columns_indices]return selected_columnsdef generate_line_plot(self, extracted_data, selected_columns):# Set the first selected column as X-axis and others as Y-axisx_axis = selected_columns[0]y_axes = selected_columns[1:]plt.figure(figsize=(10, 6))plt.plot(extracted_data[x_axis], extracted_data[y_axes])plt.xlabel(f'{x_axis} (X-axis Label)')plt.ylabel('Y-axis Label')plt.title('Line Plot')plt.legend(y_axes)plt.show()def run(self):# 提取第一份CSV的列名,以供用户选择first_file_name = self.file_names[0]column_names = pd.read_csv(first_file_name, delimiter=',', encoding='utf_8_sig').columns.tolist()selected_columns = self.get_selected_columns(column_names)extracted_data = self.extract_data(selected_columns)print(extracted_data)self.generate_line_plot(extracted_data, selected_columns)if __name__ == "__main__":# 用户输入CSV文件路径file_paths = input("输入CSV文件路径(多个文件用逗号分隔): ").split(',')# 创建CSVLinePlotter实例line_plotter = CSVLinePlotter(file_paths)line_plotter.run()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/608112.shtml

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

相关文章

到了一个公司怎么发挥自己的价值呢?

本文仅凭借个人所经历过的公司展开论述&#xff0c;每个公司不尽相同&#xff0c;如有歧义可自由发言 一个团队干的时间久了&#xff0c;业务能总览大局&#xff0c;如果用户量迟迟没有暴增&#xff0c;业务没有拓展&#xff0c;技术想必也不会有较大的更新。团队日常工作处理游…

使用Moonbuilders Academy平台,学习DApp开发

Moonbeam团队于2022年宣布开放Moonbuilders Academy。这是一套以开发为中心的异步学习课程&#xff0c;用于学习如何在Moonbeam上构建跨链DApp。 如何从官网进入平台&#xff1f; 点击http://moonbeam.network 鼠标移动至 “Builders”&#xff0c;在Resources下方选择“Moo…

2024腾讯爱奇艺首发片单,谁能率先拿下开年爆款?

刚进入2024年&#xff0c;头部长视频平台就开启了新一轮“内卷”。 腾讯和爱奇艺不约而同地在2024年的第一天发布了新剧片单&#xff0c;多部高质量精品大剧蓄势待发&#xff0c;点燃了观众和市场的期待。 2023年之争已经落下帷幕&#xff0c;爱奇艺凭借大爆剧《狂飙》拔得头…

Next City 数都上海应用创新大赛结果公布,子虔科技获奖

12月16日&#xff0c;以“应变求机 以数谋新”为主题的上海城市数字化转型体验周举办。作为上海城市数字化转型年终重磅活动&#xff0c;上海市人民政府副秘书长庄木弟&#xff0c;市经济和信息化工作党委书记程鹏&#xff0c;杨浦区委副书记、区长周海鹰&#xff0c;市经济和信…

Apache ActiveMQ 远程代码执行漏洞分析

漏洞简介 Apache ActiveMQ官方发布新版本&#xff0c;修复了一个远程代码执行漏洞&#xff0c;攻击者可构造恶意请求通过Apache ActiveMQ的61616端口发送恶意数据导致远程代码执行&#xff0c;从而完全控制Apache ActiveMQ服务器。 影响版本 Apache ActiveMQ 5.18.0 before …

统信UOS虚拟机安装VirtualBox扩展使用USB功能

为什么要安装VirtualBox扩展包&#xff1f; 安装 Oracle VM VirtualBox 扩展包的原因是&#xff0c;它提供了对 USB 2.0、USB 3.0、远程桌面协议 VRDP&#xff08;VirtualBox Remote Desktop Protocol&#xff09;等实用功能的支持&#xff0c;以增强 VirtualBox 的功能。这些…

HarmonyOS 应用开发学习笔记 ets组件生命周期

HarmoryOS Ability页面的生命周期 Component自定义组件 ets组件生命周期官放文档 本文讲解 ets组件的生命周期&#xff0c;在此之前大家可以先去了解Ability的生命周期&#xff0c;这两个生命周期有有一定的关联性 在开始之前&#xff0c;我们先明确自定义组件和页面的关系&…

Redis之集群脑裂

redis集群没有过半机制会有脑裂问题&#xff0c;网络分区导致脑裂后多个主节点对外提供写服务&#xff0c;一旦网络分区恢复&#xff0c;会将其中一个主节点变为从节点&#xff0c;这时会有大量数据丢失。 规避方法可以在redis配置里加上参数&#xff08;这种方法不可能百分百…

系列八、面向对象

一、面向对象 1.1、面向对象 vs 面向过程 &#xff08;1&#xff09;面向对象是一种对现实世界理解和抽象的方法&#xff0c;是计算机编程技术发展到一定阶段后的产物&#xff1b; &#xff08;2&#xff09;面向过程是一种以过程为中心的编程思想。这些都是以什么正在发生为主…

RPA财务机器人在厦门市海沧医院财务管理流程优化汇总的应用

目前国内外研究人员对于RPA机器人在财务管理流程优化领域中的应用研究层出不穷&#xff0c;但现有研究成果主要集中在财务业务单一领域&#xff0c;缺乏财务管理整体流程一体化管控的研究。RPA机器人的功能绝非单一的财务业务处理&#xff0c;无论从自身技术发展&#xff0c;或…

常见的Latex公式所用到的内容汇总

行内公式 f ( x ) a b f(x)ab f(x)ab 左右各加一个$&#xff0c;即为行内公式 $ f(x) ab $行间公式 $$ f(x) ab $$f ( x ) a b f(x)ab f(x)ab 手动编号 $$ f(x) a - b \tag{1.1} $$f ( x ) a − b (1.1) f(x)a-b \tag{1.1} f(x)a−b(1.1) 简单运算 -*/以及阿拉伯…

为什么大型服务器要用 Linux 系统?

为什么大型服务器要用 Linux 系统&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Linux的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff…

创新百喻,综合性思维和分析性思维

创新百喻&#xff0c;综合性思维和分析性思维 不知道您注意没有&#xff0c;在创新中&#xff0c;人们的思维方式是不一样的&#xff0c;有综合性思维和分析性思维之分。总的来说&#xff0c;综合性思维适合创造原来没有的事物&#xff0c;而分析性思维擅长改进和提高&#xf…

element plus: el-upload详解

<el-uploadref"uploadRef":limit"1" // 上传几个accept".xlsx, .xls" // 支持的格式:headers"headers" :action"http//:shangchuan.com":disabled"state.upload.isUploading":before-upload"onBeforeUpl…

Java Spring boot 日期和时间统一设置

方法一&#xff1a;配置文件修改 修改配置文件配置application.yml&#xff1a; spring:# 配置日期格式化jackson:date-format: yyyy-MM-dd HH:mm:ss #时间戳统一转换为指定格式time-zone: GMT8 # 时区修改为东8区 application.properties配置方式 spring.jackson.date-f…

两周掌握Vue3(一):安装、打包、目录结构

文章目录 一、安装1.安装node.js和npm&#xff08;windows&#xff09;2.安装vue&#xff0c;创建vue项目报错&#xff1a;XXX不是内部或外部命令 二、打包三、目录结构 nodejs版本&#xff1a;v20.10.0 npm版本&#xff1a;v10.2.3 一、安装 1.安装node.js和npm&#xff08;…

安科瑞电气防火限流式保护器与电动汽车充电桩的搭配使用——安科瑞 顾烊宇

摘要&#xff1a;随着电动汽车行业的不断发展&#xff0c;电动汽车充电设施的使用会变得越来越频繁和广泛。根据中汽协数据显示&#xff0c;2022年上半年&#xff0c;我国新能源汽车产销分别完成266.1万辆和260万辆,同比均增长1.2倍,市场渗透率达21.6%。因此&#xff0c;电动汽…

bool和BOOL的区别

简介 在编程中&#xff0c;bool&#xff08;以小写形式&#xff09;和BOOL&#xff08;以大写形式&#xff09;是两个不同的数据类型。bool是C和C#等语言中的基本数据类型&#xff0c;它表示一个布尔值&#xff0c;可以是true&#xff08;真&#xff09;或false&#xff08;假…

韩语发音干货,零基础韩语学习,柯桥韩语知识点之发音规律

01.连音化 当收音遇到以元音为首音的音节时&#xff0c;收音要和该元音相连发音。 예: 독일[도길] 밥을 [바블] 우산이[우사니] 읽어요[일거요] 02.送气 ㄱ/ㄷ/ㅂ/ㅈ遇到ㅎ,送气化读成ㅋ/ㅌ/ㅍ/ㅊ 예: 어떻게[어떠케] 좋다[조타] 많지만[만치만] 백화점[배콰…

Qt连接数据库(内含完整安装包)

遇到问题必须多思考 这里是最全的Qt连接数据库步骤 qt下载地址 链接&#xff1a;https://pan.baidu.com/s/1wdnTfyL9MQlNOCrSmIOxrQ?pwddgqi 提取码&#xff1a;dgqi --来自百度网盘超级会员V1的分享 数据库百度网盘地址 链接&#xff1a;https://pan.baidu.com/s/1orCczey…