数据源文件:sitka_weather_07-2018_simple.csv等文件网盘链接免费下载_的博客-CSDN博客

介绍:文件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()

运行结果如下:

设置以上图标后,我们来添加更多的数据,生成一副更复杂的锡特卡天气图。将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()

运行结果如下:

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

对代码进行修改:

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()

运行结果如下:

--------------------------------------------------------------------------------------------------------------------------------此外,读取CSV文件过程中,数据可能缺失,程序运行时就会报错甚至崩溃。所有需要在从CSV文件中读取值时执行错误检查代码,对可能的异常进行处理,更换数据文件为:death_valley_2018_simple.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年每日最高温度和最低气温
美国加利福利亚死亡谷", 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文件,并进行数据可视化绘图相关推荐

  1. python获取股指_用Python读取csv文件中的沪深300指数历史交易数据

    保存路径:D:\python\用Python读取csv文件中的沪深300指数历史交易数据 程序名称:readcsvhs300.py: 数据名称:沪深300指数历史交易数据.csv: 开发环境:Win7 ...

  2. python怎么读取csv的一部分数据_python批量读取csv文件 如何用python将csv文件中的数据读取成数组...

    如何用python把多个csv文件数据处理后汇总到新csv文件你看这月光多温柔,小编转头还能看见你,一切从未坍塌. 可以用pandas读取数据,首先把文件方同一个文件价里,然后对当前文件价的所有内容循 ...

  3. python导入csv数据例子-使用python读取csv文件快速插入数据库的实例

    如下所示: # -*- coding:utf-8 -*- # auth:ckf # date:20170703 import pandas as pd import cStringIO import ...

  4. python读取csv文件的方法-CSV文件在Python中的几种处理方式

    Comma Separated Values,简称CSV,它是一种以逗号分隔数值的文件类型.在数据库或电子表格中,它是最常见的导入导出格式,它以一种简单而明了的方式存储和共享数据,CSV文件通常以纯文 ...

  5. 用Python读取CSV文件的5种方式

    典型的数据集stocks.csv: 一个股票的数据集,其实就是常见的表格数据.有股票代码,价格,日期,时间,价格变动和成交量.这个数据集其实就是一个表格数据,有自己的头部和身体. 第一招:简单的读取 ...

  6. python读取csv文件路径正确但报错FileNotFoundError: [Errno 2] No such file or directory

    项目场景: python读取csv文件路径正确但报错FileNotFoundError: [Errno 2] No such file or directory 问题描述: #储存调用表格.数据 #调 ...

  7. python 读取csv文件 和 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa8 in position问题...

    python 读取csv文件,无法读取第一列的数据,不知道为什么.以后有时间再来研究 import os import csv import jsonfw = open("data_json ...

  8. 记录python读取csv文件

    记录一下python读取文件 在做对比实验的过程当中,往往会遇到很多需要从.csv文件中读取数据的情况,因为做深度学习用的是python,所以下面记录一下使用python读取.csv文件的方法. 读取 ...

  9. python 读取csv文件绘图

    python 读取csv文件数据,然后通过plot绘图. #!/bin/bash pythonimport csvimport numpy as npfrom matplotlib import py ...

  10. python读取csv文件_python3.0读取csv文件

    创建CSV文件,可以打开excel文件,创建表格以后,另存为csv文件(以逗号分隔的文件) 以文本格式打开,发现是用逗号分隔的 用python读取csv文件,首先要引入一个库:csv import c ...

最新文章

  1. 深度剖析:Redis分布式锁到底安全吗?看完这篇文章彻底懂了!
  2. poj 3275(传递闭包)
  3. 姚班、智班之后,量子信息班在清华成立,姚期智担纲,“致力国家战略需求”!...
  4. 使用OpenCV检测图像中的矩形
  5. eggjs的参数校验模块egg-validate的使用和进一步定制化升级
  6. Gensee Android SDK(一)组成结构
  7. webAppbuilder微件使用教程3 地理处理微件
  8. 教程:Visual Studio 连接 MySQL 数据库(包含常见错误及解决方法)
  9. bzoj 3036: 绿豆蛙的归宿(Dp)
  10. 20171130C语言知识点梳理
  11. 如何将一个String和多个String值进行比较
  12. Git-第三篇廖雪峰Git教程学习笔记(2)回退修改,恢复文件
  13. 淘宝店铺店名起、分类如何定【太原网络营销师】教你
  14. 维基百科的语料库下载以及后续操作(一)2020年6月【包括opencc下载避雷,繁转简】
  15. 神经网络模型(.pth)能做些什么(使用心得)
  16. bug:Bus error的解决方法(zz)
  17. maya之坐标轴与模型显示状态
  18. cad把图形切成两部分_CAD入门教程,最常用快捷键
  19. [转]触乐独家:揭秘愈演愈烈的苹果“做号退款”生态圈
  20. cam、ts、tc、scr等电影版本标识的解析及区别(中英文对照版)

热门文章

  1. 万字长文的Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!
  2. Transphorm推出第四代GaN平台及SuperGaN™功率FET
  3. C++扑克牌类的设计
  4. mysql partition赋权_Mysql的赋权
  5. 普罗米修斯监控mysql与邮件告警
  6. 笔记本处理器排名_上半年最受欢迎处理器TOP10榜单:AMD终进榜,9代酷睿无缘前10...
  7. Java 几何图形的面积与周长计算程序的设计与实现
  8. 跟我一起水疗的哥俩儿,其实挺猛的!
  9. 揭秘“菲住布渴”中运用的黑科技:除了check in、坐电梯、开门...全部刷脸之外,还有什么?
  10. 读Tan基于最大化对比度的去雾方法