csv文件处理及可视化
(1)csv文件格式:要在文本文件中存储数据,最简单的方式是将数据作为一系列以逗号( , )分隔的值写入文件【形式:数据之间用,号隔开】 #例如:2014-1-5,61,44,26,18,7,-1,56,30,9,30.34,30.27,30.15,10,4,0.00,0,195 (2)分析csv文件头 #csv处理模块包含在Python标准库中,可以分析csv文件的数据行,可以快速提取感兴趣的值。
def read_csv2():
filename = 'D:\python_test1\chapter_16_sitka_weather_07-2014.csv'
with open(filename) as f:
reader = csv.reader(f)
header_row = next(reader)
for index, column_header in enumerate(header_row):
print(index, column_header)
(3)可视化实例:绘制整年的天气图
def get_allyear():
filename="D:\python_test1\chapter_16_sitka_weather_2014.csv"
with open(filename) as f:
reader=csv.reader(f)
next(reader)
highs,dates,lows=[]
for row in reader:
highs.append(int(row[1]))
date=datetime.strptime(row[0],"%Y-%m-%d")
dates.append(date)
lows.append(int(row[3]))
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='green', alpha=0.1)
plt.title("Daily high and low temperatures - 2014", fontsize=24)
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)设置图像大小(自定义图像实例)
fig=plt.figure(dpi=128,figsize=(10,6))
语法:
figure(num=None, figsize=None, dpi=None, facecolor=None,edgecolor=None, frameon=True)
参数解析:
num:图像编号或名称,数字为编号 ,字符串为名称 figsize:指定figure的宽和高,单位为英寸; dpi参数:指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 facecolor:背景颜色 edgecolor:边框颜色 frameon:是否显示边框
补充:
fig.autofmt_xdate()#绘制斜的日期标签,以免它们彼此重叠
(2)在同一个折线中绘制两条图线 语法逻辑:为同一个plt实例添加数据,调用多次plot函数,就可以在同一张图中绘制多条折线。
#画图 两个plot绘制在一张图上 plt.plot(dates,highs,c=“red”,alpha=0.5) plt.plot(dates,lows,c=“blue”,alpha=0.5) #dates x轴 highs/lows y轴 alpha=0.5设置不透明度
(3) 设置图像填充区域 fill_between()设置填充区域
plt.fill_between(dates, highs, lows, facecolor=‘green’, alpha=0.1)
参数解析:
#实参facecolor指定了填充区域的颜色 dates表明x轴范围, highs, lows 表示两个y轴范围,由x范围和y轴范围共建的区域为填充的区域 #作用:让填充区域将两个数据系列连接起来的同时不分散观察者的注意力。
【结果分析】:
|