matlab如何绘制像素格子的图_如何用Python绘制全年气温日变化图

本文介绍了如何使用Python绘制某地区2014年全年的气温变化图,并提供了详细的代码讲解。首先展示了绘制的气温变化图,然后详细解释了数据读取、日期转换和绘图过程。对于matplotlib库的使用,文章提到了如何设置图形格式,以创建专业的图表。
摘要由CSDN通过智能技术生成

话不多说,先上图,随后会放上相应的代码以及代码讲解。如果只需要抄代码,看第二段即可;若需看详细讲解,请往下拉~

《Python编程:从入门到实践》第16章笔记

1. 气温变化图

用python绘制某地区2014年全年的气温变化图如下:

b9fb33b17c51d98a6e11be3c2af97a3c.png

2. 代码实现

实现该图的相关代码如下:

import csv
from datetime import datetime

from matplotlib import pyplot as plt

#从文件中获取日期和最高气温
filename = 'sitka_weather_2014.csv'
with open(filename) as f:
reader = csv.reader(f)
header_row = next(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)
print(highs)

#根据数据绘制图形
fig = plt.figure(dpi=128,figsize=(10,6))
plt.plot(dates,highs,c='red')

#设置图形的格式
plt.title("Daily high 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()

3. 代码讲解

准备工作:下载matplotlib包,具体安装方法请参考新手爬虫教程。

读取数据

python读取数据包括一系列的过程,为了讲清楚open()函数,csv.reader()函数,我画了一个 流程图方便理解。

ecdb9e103e2426f77b5a2ab8eb09bec0.png

该 流程图包括: ①告诉python你要打开的文件名; ②用 open() 函数打开该文件; ③用 reader() 函数 读取该文件。

next()函数:每运行一次next() ,都会返回文件中的下一行的数据。本代码只调用了next() 一次,因此得到的是数据的第一行(文件头),并将返回的数据存储在header_row ,头文件数据读取情况如下:

0 AKDT 
1 Max TemperatureF
2 Mean TemperatureF
3 Min TemperatureF
......
20 CloudCover

0 AKDT :表示第0行为数据日期;1 Max TemperatureF :表示第一行为日内最高温。

row[0],row[1]:每行的第0列数据,即日期;每行的第1列数据,即最高温。

dates,highs = [],[]:创建了一个名为dates,highs 的空列表,用for循环遍历文件中余下的各行;reader对象从其停留的地方,继续往下读取CSV文件。由于上一步已经读取了文件头行(头文件),这个循环将从第二行开始(从这行开始包含的是实际数据)。每次执行该循环时,都将索引的数据附加到dates,highs 末尾。

datetime.strptime(row[0],"%Y-%m-%d"):读取row[0]的日期数据时,格式为‘2014-1-1’,是字符串格式,需将其转化成可以识别的日期格式。因此,需要引入datetime模块和strptime()函数。

strptime()函数的各参数及其含义如下:

参数含义
%A星期的名称,如Monday
%B月份名,如January
%m用数字表示的月份(01~12)
%d用数字表示月份中的一天(01~31)
%Y四位的年份,如2015
%y两位的年份,如15
%H24小时制的小时数(00~23)
%I12小时制的小时数(01~12)
%pam或pm
%M分钟数(00~59)
%S秒数(00~61)

绘图:关于绘图和设置图形格式,后面会做一个较为全面的总结,上述代码已经可以做一些简单的绘图啦~

63665b0e09787a00781d9879948bf783.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值