《python编程从入门到实践》读书笔记与代码实现(二)——数据可视化(2)
2020-01-14 19:26
387 查看
笔记与代码实现
第十六章
结合我自己的北京地区历史气温CSV数据
#16.1 CSV文件格式 import csv from matplotlib import pyplot as plt filename = 'weather_Beijing_timeseries.csv' #使用本地已有文件进行实验 with open(filename) as f: reader = csv.reader(f) #reader处理文件中以逗号分隔的第一行数据,并将每项数据都作为一个元素存储在列表中 header_row = next(reader) #分析CSV文件头,查看这个文件的第一行,其中包含一系列有关数据的描述 #为让文件头数据更容易理解,将列表中的每个文件头及其位置(索引)打印出来 for index, column_header in enumerate(header_row):#enumerate()获取每个元素的索引及其值 print(index, column_header) #print(header_row)使用上面的代码以显示出更详细的文件头结果 highs = [] for row in reader: #highs.append(row[1])#结合上面得出的索引结果,选择最高温,并直接将其作为字符串存入列表 high = int(row[2])#将字符串转换为数据便于存储 highs.append(high) print(highs)
#利用本地已有文件结合图书进行可视化展示 # -*- coding: gbk -*- #16.1 CSV文件格式 import csv from matplotlib import pyplot as plt #向图表的横轴添加日期参数 from datetime import datetime filename = 'weather_Beijing_timeseries.csv' #使用本地已有文件进行实验 with open(filename) as f: reader = csv.reader(f) #reader处理文件中以逗号分隔的第一行数据,并将每项数据都作为一个元素存储在列表中 header_row = next(reader) #分析CSV文件头,查看这个文件的第一行,其中包含一系列有关数据的描述 #为让文件头数据更容易理解,将列表中的每个文件头及其位置(索引)打印出来 for index, column_header in enumerate(header_row):#enumerate()获取每个元素的索引及其值 print(index, column_header) #print(header_row)使用上面的代码以显示出更详细的文件头结果 dates, highs , lows = [], [], [] for row in reader: try:#错误检查代码,以防止程序崩溃 current_date = datetime.strptime(row[0], "%Y/%m/%d") #highs.append(row[1])#结合上面得出的索引结果,选择最高温,并直接将其作为字符串存入列表 high = int(row[1])#将字符串转换为数据便于存储 low = int(row[2])#将字符串转换为数据便于存储 except ValueError: print(current_date, 'missing data') else: dates.append(current_date) highs.append(high) lows.append(low) ''' 在有些情况下 需要使用continue来跳过一些数据 或者使用remove()或del将已提取的数据删除 ''' #print(highs) #根据数据绘制图形 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) #得到每天的气温范围,facecolor指定了填充区域的颜色 #Alpha值为0表示完全透明,1(默认设置)表示完全不透明 #设置图形的格式 plt.title("Daily temperatures-Beijing2011-2019", 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() #first_date = datetime.strptime('2014-7-1', '%Y-%m-%d') #方法strptime(),第一个实参是所需日期的字符串。第二个实参告诉Python如何设置日期的格式 #print(first_date) #2014-07-01 00:00:00
模块 datetime 中设置日期和时间格式的实参
实参 | 含义 |
---|---|
%A | 星期的名称,如 Monday |
%B | 月份名,如 January |
%m | 用数字表示的月份( 01~12 ) |
%d | 用数字表示月份中的一天( 01~31 ) |
%Y | 四位的年份,如 2015 |
%y | 两位的年份,如 15 |
%H | 24 小时制的小时数( 00~23 ) |
%I | 12 小时制的小时数( 01~12 ) |
%p | am 或 pm |
%M | 分钟数( 00~59 ) |
%S | 秒数( 00~61 ) |
JSON格式
未完(好端端的数据读不出来)
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 《python编程从入门到实践》读书笔记与代码实现(二)——数据可视化(3)
- 对比《Python编程无师自通专业程序员的养成》PDF代码+《Python编程从入门到实践》PDF代码+《Python可以这样学》PDF代码分析...
- 随手小代码——《Python编程 从入门到实践》项目1:外星人入侵
- 【day 4】python编程:从入门到实践学习笔记-字典(末附练习答案代码)
- 【day 9】python编程:从入门到实践学习笔记-测试代码(末附练习答案代码)
- 《python编程:从入门到实践》读书笔记2---列表
- 【day 8】python编程:从入门到实践学习笔记-文件和异常(末附答案代码)
- 【Python编程:从入门到实践】第十一章:测试代码
- 《大话设计模式》读书笔记(C++代码实现) 第二章:策略模式
- ActiveMQ入门案例-生产者代码实现
- 《Python编程从入门到实践》_第六章_字典
- python编程:从入门到实践第3章
- 《Python编程 从入门到实践》第3章
- 《Python编程 从入门到实践》 PDF下载
- 《Python编程:从入门到实践》 练习 10-1 10-2
- 《Python编程——从入门到实践》第四章部分习题解
- spring-boot快速入门实践代码
- 《python编程:从入门到实践》学习笔记9(第10章文件和异常)
- 《Python编程从入门到实践》_第七章_用户输入和whlie循环
- Python编程实现线性回归和批量梯度下降法代码实例