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. PKU 3667 Hotel (线段树,区间合并,最长连续区间)

    题意:宾馆有N个房间(1~N),M个操作,a=1,输入b,表示N间房是否有连续的b间房.有输出最左边的房编号 没有输出0.a=2,输入b,c表示房间b到c清空. 模仿了大神的代码,敲了一遍,有些地方还 ...

  2. [Vue] Setup custom keyCode

    Vue provide some shortcut methods: @mousemove.stop is comparable to e.stopPropogation() @mousemove.p ...

  3. C++学习之函数模板与类模板

    泛型编程(Generic Programming)是一种编程范式,通过将类型参数化来实现在同一份代码上操作多种数据类型,泛型是一般化并可重复使用的意思.泛型编程最初诞生于C++中,目的是为了实现C++ ...

  4. poj1852ant

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

  5. JDBC高级特性(一)结果集,批量更新

    一.ResultSet的高级特性 1 可滚动ResultSet 1)向前和向后滚动 滚动特性 在JDBC初期版本号中, ResultSet仅能向前滚动 在JDBC兴许版本号中, ResultSet默认 ...

  6. 防遗忘笔记,Fedora交叉编译window下的virt-iewer的汉化

    1. 汉化代码里的资源 virtviewer使用的是gettex的方案是标准的linux里国际化的方案.按道理仅仅须要改动virtualviewer/po/zh_CN.po的文件. 编译. 然后确认在 ...

  7. [水题]4242 果实计数&&3214 采访对象

    4242 果实计数  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 淘淘家有棵奇怪的苹果树,这棵树共有n+1层 ...

  8. 【bzoj1196】[HNOI2006]公路修建问题

    二分答案 验证有一种贪心的思想,就是如果这条路的c1比二分的值还小,那就要果断选择一级公路. 搜过一遍后,如果可供选择的一级公路小于k,就可以直接返回否了. 接下来继续选择,如果可以选到n-1条路,就 ...

  9. XAML实例教程系列 - 类型转换器(Type Converter)七

    XAML实例教程系列 - 类型转换器(Type Converter) 分类: Windows 8 Silverlight2012-06-25 13:40 961人阅读 评论(0) 收藏 举报 butt ...

  10. MSP430 WDT

    MSP430 WDT 有两种模式:1,看门狗  2,定时器 我们这次只用定时器模式,注意有两个决定定时时间的地方:1,时钟源选择  2,间隔时间选择 时钟源可以为:SMCLK 或者 ACLK 时间间隔 ...