1.csv文件读取,csv文件是常用的数据存储格式之一,我们使用Python模块来处理csv文件,这是一个天气信息表

import csv
from matplotlib import pyplot as plt filename = 'sitka_weather_07-2014.csv'
with open(filename) as f:
#从文件获取数据
reader = csv.reader(f)
#获取数据的第一行也就是数据字段
header_row = next(reader)
#print(header_row)
#遍历读取到的第一行数据使用enumerate函数来获取每个元素的索引和值
# for index ,column_header in enumerate(header_row):
# print(index,column_header) highs=[]
#从文件获取到最高气温
for row in reader:
highs.append(int(row[1]))
print(highs)
fig = plt.figure(dpi=128, figsize=(10, 6))
plt.plot(highs, c='red', alpha=0.5)
#plt.plot(dates, lows, c='blue', alpha=0.5)
#plt.fill_between(dates, highs, lows, facecolor='blue', alpha=0.1) title = "Daily high and low temperatures CA"
plt.title(title, fontsize=20)
plt.xlabel('', fontsize=16)
fig.autofmt_xdate()
plt.ylabel("Temperature (F)", fontsize=16)
plt.tick_params(axis='both', which='major', labelsize=16) plt.show()

除了这样显示,我们还可以读取时间数据显示在x轴上,添加datetime模块

from datetime import datetime

读取时间数据

filename = 'sitka_weather_07-2014.csv'
with open(filename) as f:
#从文件获取数据
reader = csv.reader(f)
#获取数据的第一行也就是数据字段
header_row = next(reader)
#print(header_row)
#遍历读取到的第一行数据使用enumerate函数来获取每个元素的索引和值
# for index ,column_header in enumerate(header_row):
# print(index,column_header) highs,dates=[],[]
#从文件获取到最高气温
for row in reader:
#从文件获取日期
current_date=datetime.strptime(row[0],"%Y-%m-%d")
dates.append(current_date)
highs.append(int(row[1]))
print(highs,dates)
fig = plt.figure(dpi=128, figsize=(5, 4))
#添加日期
plt.plot(dates,highs, c='red', alpha=0.5)

图中是一个月的天气温度情况

当然还可以读取整年的天气情况,只要有足够的数据

2.绘制一个数据系列,对比全年每个月的最高气温和最低气温

import csv
from datetime import datetime from matplotlib import pyplot as plt filename = 'death_valley_2014.csv'
with open(filename) as f:
reader = csv.reader(f)
header_row = next(reader) dates, highs, lows = [], [], []
for row in reader:
#判断是否有时间信息
try:
current_date = datetime.strptime(row[0], "%Y-%m-%d")
high = int(row[1])
#读取最低温数据
low = int(row[3])
except ValueError:
print(current_date, 'missing data')
else:
dates.append(current_date)
highs.append(high)
lows.append(low) #绘制图表.
fig = plt.figure(dpi=128, figsize=(10, 9))
plt.plot(dates, highs, c='red', alpha=0.5)
plt.plot(dates, lows, c='blue', alpha=0.5)
#facecolor指定了填充区域的颜色
plt.fill_between(dates, highs, lows, facecolor='blue', alpha=0.1) title = "Daily high and low temperatures CA"
plt.title(title, fontsize=10)
plt.xlabel('', fontsize=6)
fig.autofmt_xdate()
plt.ylabel("Temperature (F)", fontsize=6)
plt.tick_params(axis='both', which='major', labelsize=6) plt.show()

学习csv的更多相关文章

  1. R语言之词云:wordcloud&wordcloud2安装及参数说明

    一.wordcloud安装说明 install.packages("wordcloud"); 二.wordcloud2安装说明 install.packages("dev ...

  2. 实例学习——爬取豆瓣网TOP250数据

    开发环境:(Windows)eclipse+pydev 网址:https://book.douban.com/top250?start=0 from lxml import etree #解析提取数据 ...

  3. JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置

    众所周知,在进行接口测试的过程中,需要创建不同的场景(不同条件的输入,来验证不同的入参的返回结果).因而,在日常的自动化接口监控或商品监控等线上监控过程中,需要配置大量的入参来监控接口的返回是否正确. ...

  4. 学习 MySQL中导入 导出CSV

    学习 MySQL中导入 导出CSV http://blog.csdn.net/sara_yhl/article/details/6850107    速度是很快的 导出 select * from t ...

  5. HttpRunner学习7--引用CSV文件数据

    前言 在之前的文章中,我们已经学习了 parameters 参数化,是在测试脚本中直接指定参数列表.这种方法简单易用,但如果我们的参数列表数据比较多,这种方法可能就不太适合了. 当数据量比较大的时候, ...

  6. python3 xlwt,csv学习

    前言 对于抓取一些站点分析然后指纹识别的时候可能用到到它.所以学习下.这里就记录一些最基本的感觉有用的. xlwt 基本创建 demo: #coding=utf- import xlwt yunyin ...

  7. JMeter学习-027-JMeter参数文件(脚本分发)路径问题:jmeter.threads.JMeterThread: Test failed! java.lang.IllegalArgumentException: File distributed.csv must exist and be readable解决方法

    前些天,在进行分布式参数化测试的时候,出现了如题所示的错误报错信息.此文,针对此做一个简略的重现及分析说明. JMX脚本线程组参数配置如下所示: 参数文件路径配置如下所示: 执行JMX脚本后,服务器对 ...

  8. salesforce 零基础学习(二十四)解析csv格式内容

    salesforce中支持对csv格式的内容批量导入,可以使用dataloader,然而有些情况下,当用户没有相关权限使用dataloader导入情况下,就的需要使用VF和apex代码来搞定. 基本想 ...

  9. 每日学习心得:Linq解决DataTable按照某一列的值排序问题/DataTable 导出CSV文件/巧用text-overflow解决数据绑定列数据展示过长问题

    2013-8-5 1 Linq解决DataTable按照某一列的值排序 在之前的总结中提到过对拼接而成的复合的DataTable按照某一列值的大小排序,那个主要的思想是在新建表结构时将要排序的那一列的 ...

随机推荐

  1. ORA-00600: internal error code, arguments: [kkqtSetOp.1]

    新数据库从32升级到64位的11G 11 2 0 3 有条SQL 语句运行的时候会导致内部错误. 使用PL/SQL DEVELOPER 查询该语句的运行机会 按F5键 就激发了这个ORA600 单击此 ...

  2. 自己定义控件:onDraw 方法实现仿 iOS 的开关效果

    概述 本文主要解说怎样在 Android 下实现高仿 iOS 的开关按钮,并不是是在 Android 自带的 ToggleButton 上改动,而是使用 API 提供的 onDraw.onMeasur ...

  3. (转)C++ CListCtrl使用技巧的摘抄

    转:http://blog.csdn.net/sanshao27/article/details/1888315 1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标      ...

  4. php 把一个数组分成有n个元素的二维数组的算法

    一.第一种解法 <?php //把一个数组分成几个数组 //$arr 是数组 //$num 是数组的个数 function partition($arr,$num){ //数组的个数 $list ...

  5. 分布式消息服务DMS与开源Kafka对比

    分布式消息服务(简称DMS)是一项基于高可用分布式集群技术的消息中间件服务,提供了可靠且可扩展的托管消息队列,用于收发消息和存储消息.那么,比起自建开源的Kafka,分布式消息服务DMS有哪些好处呢? ...

  6. Linux VM环境配置

    1. 直接打 ifconfig ,显示 bash: ifconfig: command not found 打入全路径,查看IP     /sbin/ifconfig 2. 主机ping不通虚拟机, ...

  7. poj1852ant

    题意是这种,有一堆蚂蚁在一根棍子上乱爬.速度都是一样的,假设它们撞到了一起就会朝反方向爬去. 把棍子长度告诉你.还有蚂蚁的数量以及它们某时的距离棍子左端的距离.要求全部蚂蚁都掉到棍子以下去 的最小可能 ...

  8. 配置远程连接mysql数据库 Connect to remote mysql database

    设有本地机器(local machine), ip地址为localip 远程机器(remote machine), ip地址remoteip 要通过在local machine的终端连接remote ...

  9. ecshop的一些东西,来看看

    \includes\lib_commom.php =>公用函数库 \includes\lib_main.php =>前台公用函数库 \includes\lib_init.php => ...

  10. selenium3 + python - 异常处理截图 screenshot

    一.截图方法 1.get_screenshot_as_file(self, filename) --这个方法是获取当前window的截图,出现IOError时候返回False,截图成功返回True. ...