Python开发【模块】:CSV文件 数据可视化
2017-05-18 11:05
666 查看
CSV模块
1、CSV文件格式要在文本文件中存储数据,最简单的方式是讲数据作为一系列逗号分隔的值(CSV)写入文件,这样的文件成为CSV文件,如下:
AKDT,Max TemperatureF,Mean TemperatureF,Min TemperatureF,Max Dew PointF,MeanDew PointF,Min DewpointF,Max Humidity, Mean Humidity, Min Humidity, Max Sea Level PressureIn, Mean Sea Level PressureIn, Min Sea Level PressureIn, Max VisibilityMiles, Mean VisibilityMiles, Min VisibilityMiles, Max Wind SpeedMPH, Mean Wind SpeedMPH, Max Gust SpeedMPH,PrecipitationIn, CloudCover, Events, WindDirDegrees 2014-7-1,64,56,50,53,51,48,96,83,58,30.19,30.00,29.79,10,10,10,7,4,,0.00,7,,337 2014-7-2,71,62,55,55,52,46,96,80,51,29.81,29.75,29.66,10,9,2,13,5,,0.14,7,Rain,327 2014-7-3,64,58,53,55,53,51,97,85,72,29.88,29.86,29.81,10,10,8,15,4,,0.01,6,,258 2014-7-4,59,56,52,52,51,50,96,88,75,29.91,29.89,29.87,10,9,2,9,2,,0.07,7,Rain,255 2014-7-5,69,59,50,52,50,46,96,72,49,29.88,29.82,29.79,10,10,10,13,5,,0.00,6,,110 2014-7-6,62,58,55,51,50,46,80,71,58,30.13,30.07,29.89,10,10,10,20,10,29,0.00,6,Rain,213 2014-7-7,61,57,55,56,53,51,96,87,75,30.10,30.07,30.05,10,9,4,16,4,25,0.14,8,Rain,211 2014-7-8,55,54,53,54,53,51,100,94,86,30.10,30.06,30.04,10,6,2,12,5,23,0.84,8,Rain,159 2014-7-9,57,55,53,56,54,52,100,96,83,30.24,30.18,30.11,10,7,2,9,5,,0.13,8,Rain,201 2014-7-10,61,56,53,53,52,51,100,90,75,30.23,30.17,30.03,10,8,2,8,3,,0.03,8,Rain,215 2014-7-11,57,56,54,56,54,51,100,94,84,30.02,30.00,29.98,10,5,2,12,5,,1.28,8,Rain,250 2014-7-12,59,56,55,58,56,55,100,97,93,30.18,30.06,29.99,10,6,2,15,7,26,0.32,8,Rain,275 2014-7-13,57,56,55,58,56,55,100,98,94,30.25,30.22,30.18,10,5,1,8,4,,0.29,8,Rain,291 2014-7-14,61,58,55,58,56,51,100,94,83,30.24,30.23,30.22,10,7,0,16,4,,0.01,8,Fog,307 2014-7-15,64,58,55,53,51,48,93,78,64,30.27,30.25,30.24,10,10,10,17,12,,0.00,6,,318 2014-7-16,61,56,52,51,49,47,89,76,64,30.27,30.23,30.16,10,10,10,15,6,,0.00,6,,294 2014-7-17,59,55,51,52,50,48,93,84,75,30.16,30.04,29.82,10,10,6,9,3,,0.11,7,Rain,232 2014-7-18,63,56,51,54,52,50,100,84,67,29.79,29.69,29.65,10,10,7,10,5,,0.05,6,Rain,299 2014-7-19,60,57,54,55,53,51,97,88,75,29.91,29.82,29.68,10,9,2,9,2,,0.00,8,,292 2014-7-20,57,55,52,54,52,50,94,89,77,29.92,29.87,29.78,10,8,2,13,4,,0.31,8,Rain,155 2014-7-21,69,60,52,53,51,50,97,77,52,29.99,29.88,29.78,10,10,10,13,4,,0.00,5,,297 2014-7-22,63,59,55,56,54,52,90,84,77,30.11,30.04,29.99,10,10,10,9,3,,0.00,6,Rain,240 2014-7-23,62,58,55,54,52,50,87,80,72,30.10,30.03,29.96,10,10,10,8,3,,0.00,7,,230 2014-7-24,59,57,54,54,52,51,94,84,78,29.95,29.91,29.89,10,9,3,17,4,28,0.06,8,Rain,207 2014-7-25,57,55,53,55,53,51,100,92,81,29.91,29.87,29.83,10,8,2,13,3,,0.53,8,Rain,141 2014-7-26,57,55,53,57,55,54,100,96,93,29.96,29.91,29.87,10,8,1,15,5,24,0.57,8,Rain,216 2014-7-27,61,58,55,55,54,53,100,92,78,30.10,30.05,29.97,10,9,2,13,5,,0.30,8,Rain,213 2014-7-28,59,56,53,57,54,51,97,94,90,30.06,30.00,29.96,10,8,2,9,3,,0.61,8,Rain,261 2014-7-29,61,56,51,54,52,49,96,89,75,30.13,30.02,29.95,10,9,3,14,4,,0.25,6,Rain,153 2014-7-30,61,57,54,55,53,52,97,88,78,30.31,30.23,30.14,10,10,8,8,4,,0.08,7,Rain,160 2014-7-31,66,58,50,55,52,49,100,86,65,30.31,30.29,30.26,10,9,3,10,4,,0.00,3,,217
sitka_weather_07-2014.csv
2、取CSV数据绘制气温图表
① 创建highs_lows.py读取数据第一行:
import csv filename = 'sitka_weather_07-2014.csv' with open(filename,'r') as f: reader = csv.reader(f) # 生成阅读器,f对象传入 header_row = next(reader) # 查看文件第一行,reader是可迭代对象 print(header_row) # 列表格式 # ['AKDT', 'Max TemperatureF', 'Mean TemperatureF', 'Min TemperatureF', # 'Max Dew PointF', 'MeanDew PointF', 'Min DewpointF', 'Max Humidity', # ' Mean Humidity', ' Min Humidity', ' Max Sea Level PressureIn', # ' Mean Sea Level PressureIn', ' Min Sea Level PressureIn', # ' Max VisibilityMiles', ' Mean VisibilityMiles', ' Min VisibilityMiles', # ' Max Wind SpeedMPH', ' Mean Wind SpeedMPH', ' Max Gust SpeedMPH', # 'PrecipitationIn', ' CloudCover', ' Events', ' WindDirDegrees']
② 修改highs_lows.py文件获取每日最高温度
import csv filename = 'sitka_weather_07-2014.csv' with open(filename,'r') as f: reader = csv.reader(f) # 生成阅读器,f对象传入 header_row = next(reader) # 查看文件第一行,reader是可迭代对象 highs = [] for row in reader: high = int(row[1]) highs.append(high) print(highs) # [64, 71, 64, 59, 69, 62, 61, 55, 57, 61, 57, 59, 57, 61, # 64, 61, 59, 63, 60, 57, 69, 63, 62, 59, 57, 57, 61, 59, 61,61, 66]
③ 根据数据绘制气温图表
import csv import matplotlib.pyplot as plt filename = 'sitka_weather_07-2014.csv' with open(filename,'r') as f: reader = csv.reader(f) # 生成阅读器,f对象传入 header_row = next(reader) # 查看文件第一行,reader是可迭代对象 highs = [] for row in reader: high = int(row[1]) highs.append(high) # 设置图片大小 fig = plt.figure(dpi=128,figsize=(10,6)) plt.plot(highs, c='red',linewidth=1) # 设置颜色、线条粗细 # 设置图片格式 plt.title('Daily high temperatures,July 2014', fontsize=24) # 标题 plt.xlabel('', fontsize=14) plt.ylabel('Temperature(F)', fontsize=14) plt.show() # 输出图像
绘图:
④ X轴改为时间日期
import csv import matplotlib.pyplot as plt from datetime import datetime filename = 'sitka_weather_07-2014.csv' with open(filename,'r') as f: reader = csv.reader(f) # 生成阅读器,f对象传入 header_row = next(reader) # 查看文件第一行,reader是可迭代对象 dates,highs = [],[] for row in reader: current_date = datetime.strptime(row[0],'%Y-%m-%d') dates.append(current_date) high = int(row[1]) highs.append(high) # 设置图片大小 fig = plt.figure(dpi=128,figsize=(10,6)) plt.plot(dates,highs, c='red',linewidth=1) # linewidth决定绘制线条的粗细 # 设置图片格式 plt.title('Daily high temperatures,July 2014', fontsize=20) # 标题 plt.xlabel('', fontsize=14) fig.autofmt_xdate() # 日期标签转为斜体 plt.ylabel('Temperature(F)', fontsize=14) plt.tick_params(axis='both',which='major') plt.show() # 输出图像
绘图:
⑤ 添加低温数据,填充折线区域
import csv import matplotlib.pyplot as plt from datetime import datetime filename = 'sitka_weather_2014.csv' with open(filename,'r') as f: reader = csv.reader(f) # 生成阅读器,f对象传入 header_row = next(reader) # 查看文件第一行,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) # 最高温度 alpha透明度0完全透明,1表示完全不透明 plt.plot(dates,lows, c='blue',alpha=0.5) # 最低温度 plt.fill_between(dates,highs,lows,facecolor='blue',alpha=0.1) #填充色 # 设置图片格式 plt.title('Daily high temperatures - 2014', fontsize=20) # 标题 plt.xlabel('', fontsize=14) fig.autofmt_xdate() # 日期标签转为斜体 plt.ylabel('Temperature(F)', fontsize=14) plt.tick_params(axis='both',which='major') plt.show() # 输出图像
绘图:
相关文章推荐
- 读书笔记--python数据可视化--001_读取CSV文件数据
- python开发_xml.etree.ElementTree_XML文件操作_该模块在操作XML数据是存在安全隐患_慎用
- Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
- 使用python将csv文件数据可视化
- python开发_xml.etree.ElementTree_XML文件操作_该模块在操作XML数据是存在安全隐患_慎用
- python开发_xml.etree.ElementTree_XML文件操作_该模块在操作XML数据是存在安全隐患_慎用
- Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
- silverlight开发:将datagrid中的数据导出为Excel和CSV文件
- python提取百万数据到csv文件
- Head First Python 第二章 函数模块&第三章 文件与异常&第四章 持久存储&第五章 处理数据
- 用Python实现CSV格式文件转换为HTML文件[Python3程序开发指南实现]
- python之模块csv之CSV文件一次写入多行
- Python_使用csv模块解析csv文件(处理Excel表格)
- python3使用csv模块读写csv文件
- python之模块csv之 读取CSV文件(reader和DictReader2个方法)
- Python脚本---把MySQL数据库表中的数据导出生成csv格式文件
- python 文件处理模块的使用,如何读取文件中数据
- Python导出数据到Excel可读取的CSV文件的方法
- 310实验室OTL问题----将写好的C++文件转换成Python文件,并将数据可视化
- Python_使用csv模块解析csv文件