文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python如何读取CSV文件并进行数据可视化绘图

2023-07-02 10:15

关注

这篇文章主要讲解了“Python如何读取CSV文件并进行数据可视化绘图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python如何读取CSV文件并进行数据可视化绘图”吧!

介绍:文件 sitka_weather_07-2018_simple.csv是阿拉斯加州锡特卡2018年1月1日的天气数据,其中包含当天的最高温度和最低温度。数据文件存储与data文件夹下,接下来用Python读取该文件数据,再基于数据进行可视化绘图。

sitka_highs.py

import csv  # 导入csv模块from datetime import datetimeimport matplotlib.pyplot as pltfilename = 'data/sitka_weather_07-2018_simple.csv'with open(filename) as f:    reader = csv.reader(f)    header_row = next(reader)  # 返回文件的下一行,在这便是首行,即文件头  # for index, column_header in enumerate(header_row):  # 对列表调用了 enumerate()来获取每个元素的索引及其值,方便我们提取需要的数据列  #     print(index, column_header)     # 从文件中获取最高温度    dates, highs = [], []    for row in reader:        current_date = datetime.strptime(row[2], '%Y-%m-%d')        high = int(row[5])        dates.append(current_date)        highs.append(high) # 根据最高温度绘制图形plt.style.use('seaborn')fig, ax = plt.subplots()ax.plot(dates, highs, c='red')# 设置图形的格式ax.set_title("2018年7月每日最高温度", fontproperties="SimHei", fontsize=24)ax.set_xlabel('', fontproperties="SimHei", fontsize=16)fig.autofmt_xdate()ax.set_ylabel("温度(F)", fontproperties="SimHei", fontsize=16)ax.tick_params(axis='both', which='major', labelsize=16)plt.show()

运行结果如下:

Python如何读取CSV文件并进行数据可视化绘图

 设置以上图标后,我们来添加更多的数据,生成一副更复杂的锡特卡天气图。将sitka_weather_2018_simple.csv数据文件置于data文件夹下,该文件包含整年的锡特卡天气数据。

对代码进行修改:

sitka_highs.py

import csv  # 导入csv模块from datetime import datetimeimport matplotlib.pyplot as pltfilename = 'data/sitka_weather_2018_simple.csv'with open(filename) as f:    reader = csv.reader(f)    header_row = next(reader)  # 返回文件的下一行,在这便是首行,即文件头   # for index, column_header in enumerate(header_row):  # 对列表调用了 enumerate()来获取每个元素的索引及其值,方便我们提取需要的数据列  #     print(index, column_header)     # 从文件中获取最高温度    dates, highs = [], []    for row in reader:        current_date = datetime.strptime(row[2], '%Y-%m-%d')        high = int(row[5])        dates.append(current_date)        highs.append(high) # 根据最高温度绘制图形plt.style.use('seaborn')fig, ax = plt.subplots()ax.plot(dates, highs, c='red')# 设置图形的格式ax.set_title("2018年每日最高温度", fontproperties="SimHei", fontsize=24)ax.set_xlabel('', fontproperties="SimHei", fontsize=16)fig.autofmt_xdate()ax.set_ylabel("温度(F)", fontproperties="SimHei", fontsize=16)ax.tick_params(axis='both', which='major', labelsize=16)plt.show()

运行结果如下:

Python如何读取CSV文件并进行数据可视化绘图

代码再改进:虽然上图已经显示了丰富的数据,但是还能再添加最低温度数据,使其更有用

对代码进行修改:

sitka_highs_lows.py

import csv  # 导入csv模块from datetime import datetimeimport matplotlib.pyplot as pltfilename = 'data/sitka_weather_2018_simple.csv'with open(filename) as f:    reader = csv.reader(f)    header_row = next(reader)  # 返回文件的下一行,在这便是首行,即文件头   # for index, column_header in enumerate(header_row):  # 对列表调用了 enumerate()来获取每个元素的索引及其值,方便我们提取需要的数据列  #     print(index, column_header)     # 从文件中获取日期、最高温度和最低温度    dates, highs, lows = [], [], []    for row in reader:        current_date = datetime.strptime(row[2], '%Y-%m-%d')        high = int(row[5])        low = int(row[6])        dates.append(current_date)        highs.append(high)        lows.append(low) # 根据最高温度和最低温度绘制图形plt.style.use('seaborn')fig, ax = plt.subplots()ax.plot(dates, highs, c='red', alpha=0.5)  # alpha指定颜色的透明度,0为完全透明ax.plot(dates, lows, c='blue', alpha=0.5)ax.fill_between(dates, highs, lows, facecolor='blue',alpha=0.1) # 设置图形的格式ax.set_title("2018年每日最高温度", fontproperties="SimHei", fontsize=24)ax.set_xlabel('', fontproperties="SimHei", fontsize=16)fig.autofmt_xdate()ax.set_ylabel("温度(F)", fontproperties="SimHei", fontsize=16)ax.tick_params(axis='both', which='major', labelsize=16)plt.show()

运行结果如下:

Python如何读取CSV文件并进行数据可视化绘图

此外,读取CSV文件过程中,数据可能缺失,程序运行时就会报错甚至崩溃。所有需要在从CSV文件中读取值时执行错误检查代码,对可能的异常进行处理,更换数据文件为:death_valley_2018_simple.csv  ,该文件有缺失值。

Python如何读取CSV文件并进行数据可视化绘图

对代码进行修改:

 death_valley_highs_lows.py

import csv  # 导入csv模块from datetime import datetimeimport matplotlib.pyplot as pltfilename = 'data/death_valley_2018_simple.csv'with open(filename) as f:    reader = csv.reader(f)    header_row = next(reader)  # 返回文件的下一行,在这便是首行,即文件头   # for index, column_header in enumerate(header_row):  # 对列表调用了 enumerate()来获取每个元素的索引及其值,方便我们提取需要的数据列  #     print(index, column_header)     # 从文件中获取日期、最高温度和最低温度    dates, highs, lows = [], [], []    for row in reader:        current_date = datetime.strptime(row[2], '%Y-%m-%d')        try:            high = int(row[5])            low = int(row[6])        except ValueError:            print(f"Missing data for {current_date}")        else:            dates.append(current_date)            highs.append(high)            lows.append(low) # 根据最高温度和最低温度绘制图形plt.style.use('seaborn')fig, ax = plt.subplots()ax.plot(dates, highs, c='red', alpha=0.5)  # alpha指定颜色的透明度,0为完全透明ax.plot(dates, lows, c='blue', alpha=0.5)ax.fill_between(dates, highs, lows, facecolor='blue',alpha=0.1)# 设置图形的格式ax.set_title("2018年每日最高温度和最低气温\n美国加利福利亚死亡谷", fontproperties="SimHei", fontsize=24)ax.set_xlabel('', fontproperties="SimHei", fontsize=16)fig.autofmt_xdate()ax.set_ylabel("温度(F)", fontproperties="SimHei", fontsize=16)ax.tick_params(axis='both', which='major', labelsize=16)plt.show()

如果现在运行 death_valley_highs_lows.py,将会发现缺失数据的日期只有一个:

Missing data for 2018-02-18 00:00:00

妥善地处理错误后,代码能够生成图形并忽略缺失数据的那天。运行结果如下:

Python如何读取CSV文件并进行数据可视化绘图

感谢各位的阅读,以上就是“Python如何读取CSV文件并进行数据可视化绘图”的内容了,经过本文的学习后,相信大家对Python如何读取CSV文件并进行数据可视化绘图这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯