【有书共读05】python编程--从入门到实践16

分析csv文件

csv文件格式:数据是以一系列逗号分隔(,)的文件

highs_lows.py

#coding:utf-8
import csv
from datetime import datetime

from matplotlib import pyplot as plt

# 从csv文件中获取最高温和最低温的记录.
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, 6))
plt.plot(dates, 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 - 2014\nDeath Valley, 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()

1、导入csv模块后,将要使用的文件的名称存储在filename中。接下来,我们打开这个文件,并将结果文件对象存储在f中。然后,我们调用csv.reader(),并将前面存储的文件对象作为实参传递给它,从而创建一个与该文件向关联的阅读器(reader)对象。
2、模块csv包含函数next(),调用它并将阅读器对象传递给它时,它将返回文件中的下一行。
3、我们对列表调用了enumerate()来获取每个元素的索引和其值。
4、我们创建了一个名为highs的列表,再遍历文件中余下的各行。阅读器从其停留的地方继续往下读取csv文件,每次都自动返回当前所处位置的下一行。
5、我们将最高气温列表传递给polt(),并传递 c = 'red' 以便将数据点绘制成红色(红色代表最高气温,蓝色代表最低气温)。
6、最低气温的操作也如同4和5大致相同。
7、在图表中添加日期,使其更有用。首先导入模块datetime中的datetime类,然后调用方法strptime(),并将包含所需日期的字符串作为第一个参数。第二个参数告诉python如何设置日期的格式。
8、按照前面讲过的图表绘制方法即可绘制

#Python#
全部评论

相关推荐

头像
昨天 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
10-06 12:46
门头沟学院 Java
跨考小白:定时任务启动
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务