自己写的代码

#文件1.pyimport csvimport matplotlib.pyplot as pltfrom datetime import datetimefrom read_fun import read_fundeath_valley_whe = 'death_valley_2014.csv'
sitka_whe = 'sitka_weather_2014.csv't1,t2 = [],[]
d1,d2 = [],[]with open(death_valley_whe) as f:reader = csv.reader(f)header_row = next(reader)read_fun(reader,t1,d1)with open(sitka_whe) as f1:reader = csv.reader(f1)header_row = next(reader)read_fun(reader,t2,d2)fig = plt.figure(dpi=128,figsize=(10,6))
plt.plot(d1,t1,alpha =0.5)
#plt.plot(dates2,sitka_mean_tem,c='blue',alpha=0.5)
plt.title("Temperature in death valley and sitka whether",fontsize=10)
fig.autofmt_xdate()
plt.xlabel("date",fontsize = 10)
plt.ylabel("temperature Dead-valley(red) and Sitka(blue)",fontsize=10)
plt.tick_params(axis='both',which='major',labelsize=10)
plt.ylim(10,120)plt.show()
#文件 read_fun.py
from datetime import datetime
def read_fun(reader,tempus,dates):for row in reader:try:date = datetime.strptime(row[0],'%Y-%m-%d')mean_tem = row[2]except ValueError:print(date + " , missing data ")else:tempus.append(mean_tem)dates.append(date)print(date)

已经解决。

自己分析,如果日期集合和温度集合都是正确的,那么不该出现错误,后来自己把日期集合数出来,没错,但是把温度集合数出来如下:

['42', '47', '46', '47', '44', '40', '44', '40', '42', '44', '47', '50', '46', '50', '50', '50', '50', '48', '48', '49', '45', '52', '46', '54', '54', '48', '50', '52', '54', '60', '52', '44', '40', '40', '39', '41', '45', '50', '56', '57', '62', '54', '54', '56', '58', '60', '', '56', '61', '52', '53', '54', '55', '56', '56', '55', '62', '52', '50', '48', '51', '59', '58', '64', '62', '58', '60', '62', '58', '58', '56', '58', '62', '62', '68', '57', '54', '56', '61', '62', '62', '62', '62', '58', '58', '55', '64', '60', '58', '54', '51', '50', '58', '54', '63', '65', '67', '74', '70', '72', '68', '70', '66', '69', '70', '70', '71', '70', '72', '72', '65', '60', '65', '64', '58', '58', '63', '70', '69', '70', '75', '75', '80', '72', '60', '59', '66', '64', '69', '68', '70', '70', '75', '80', '84', '80', '74', '64', '61', '64', '68', '77', '79', '83', '82', '84', '75', '76', '80', '75', '80', '76', '78', '81', '81', '82', '88', '90', '88', '86', '84', '86', '78', '78', '81', '78', '74', '78', '82', '84', '83', '83', '84', '86', '85', '81', '86', '86', '88', '94', '91', '90', '90', '88', '88', '92', '92', '90', '86', '84', '86', '91', '93', '90', '90', '88', '86', '87', '85', '86', '86', '90', '88', '92', '89', '94', '88', '88', '90', '91', '91', '87', '76', '80', '82', '82', '82', '83', '86', '84', '85', '86', '87', '85', '83', '84', '84', '88', '82', '78', '77', '82', '84', '81', '80', '80', '80', '83', '84', '85', '88', '82', '85', '85', '82', '81', '82', '86', '84', '80', '79', '80', '82', '82', '84', '87', '87', '86', '84', '75', '77', '78', '77', '78', '76', '82', '76', '68', '64', '68', '70', '70', '68', '68', '71', '73', '73', '74', '72', '74', '70', '70', '72', '66', '67', '74', '64', '66', '65', '70', '70', '66', '64', '67', '68', '74', '64', '60', '62', '62', '64', '62', '54', '52', '53', '50', '57', '60', '61', '62', '62', '62', '56', '56', '59', '60', '54', '49', '44', '46', '52', '52', '55', '50', '52', '47', '48', '51', '53', '52', '60', '59', '50', '47', '55', '56', '53', '52', '51', '52', '52', '48', '52', '50', '47', '43', '42', '41', '47', '44', '42', '37', '50', '52', '48', '47', '42', '37', '38', '33']

纯粹都是字符型的。但是画图纵坐标要求是数值类型的变量(实属类型的),到此,恍然大悟,忘记把字符型数据进行转换了,解决方法如下:

把 文件read_fun.py 第7行的变为如下形式:

mean_tem = int(row[2])

自己后来又优化了下代码:

#文件1.pyimport csvfrom matplotlib import pyplot as pltfrom datetime import datetimefrom fun import read_fundeath_valley_whe = 'death_valley_2014.csv'
sitka_whe = 'sitka_weather_2014.csv'
#t1,d1代表死亡峡谷的日期和平均气温
#t2,d2代表锡特卡的日期和平均气温
t1,t2 = [],[]
d1,d2 = [],[]read_fun(death_valley_whe,t1,d1)
read_fun(sitka_whe,t2,d2)fig = plt.figure(dpi=128,figsize=(10,6))
plt.plot(d1,t1,c='red',alpha =0.5)
plt.plot(d2,t2,c='blue',alpha=0.5)
plt.title("Temperature in death valley and sitka whether",fontsize=10)
fig.autofmt_xdate()
plt.xlabel("date",fontsize = 10)
plt.ylabel("temperature Dead-valley(red) and Sitka(blue)",fontsize=10)
plt.tick_params(axis='both',which='major',labelsize=10)
plt.show()
#文件 fun.pyfrom datetime import datetime
import csvdef read_fun(file_var,tempus,dates):with open(file_var) as f:reader = csv.reader(f)header_row = next(reader)for row in reader:try:date = datetime.strptime(row[0],'%Y-%m-%d')#mean_tem 是平均气温,这里必须转换成int形式#因为文件内的数据默认不是int类型的,可能是字符串类型的或者字符类型的mean_tem = int(row[2])except ValueError:print(date," , missing data ")else:tempus.append(mean_tem)dates.append(date)

最后,作为一个复习,自己又把自己家乡(内蒙古乌兰察布市)2021年的全年最高气温和最低气温画了一个图,具体过程如下:

先从乌兰察布市天气网站下载2021年的全年气温,下载是1个月1个月地下载,还有很多不必要的数据,下载下来后自己用c++语言把需要的日期、最高气温、最低气温提取出来(其余不要,不会用python提取数据。只能用c++了),最后处理出来的数据如下:第一列代表日期,第二列代表这一天的最低气温,第三列代表这一天的最高气温,自己也把它放在date_file.csv文件中,不得不说,计算机处理重复性的事情还真是一绝,编好代码不到1秒给你处理完毕,如下:

2021-01-01,-8,-18
2021-01-02,-7,-20
2021-01-03,-7,-22
2021-01-04,-14,-23
2021-01-05,-13,-30
2021-01-06,0,-30
2021-01-07,-19,-27
2021-01-08,-13,-21
2021-01-09,-7,-19
2021-01-10,-8,-17
2021-01-11,-10,-17
2021-01-12,-4,-14
2021-01-13,-3,-10
2021-01-14,0,-16
2021-01-15,-10,-21
2021-01-16,-12,-19
2021-01-17,-8,-16
2021-01-18,-1,-12
2021-01-19,3,-13
2021-01-20,2,-14
2021-01-21,1,-15
2021-01-22,3,-11
2021-01-23,3,-11
2021-01-24,3,-10
2021-01-25,0,-14
2021-01-26,-4,-14
2021-01-27,-5,-22
2021-01-28,-8,-17
2021-01-29,-1,-12
2021-01-30,0,-10
2021-01-31,0,-16
2021-02-01,-11,-21
2021-02-02,-8,-16
2021-02-03,-5,-13
2021-02-04,1,-10
2021-02-05,2,-9
2021-02-06,4,-13
2021-02-07,-2,-13
2021-02-08,0,-10
2021-02-09,5,-11
2021-02-10,8,-4
2021-02-11,12,-9
2021-02-12,8,-4
2021-02-13,6,-7
2021-02-14,-4,-15
2021-02-15,0,-16
2021-02-16,-9,-17
2021-02-17,-1,-13
2021-02-18,7,-6
2021-02-19,9,-1
2021-02-20,12,-1
2021-02-21,12,-7
2021-02-22,4,-7
2021-02-23,3,-6
2021-02-24,8,-6
2021-02-25,7,-7
2021-02-26,7,-4
2021-02-27,5,-4
2021-02-28,-3,-9
2021-03-01,-1,-10
2021-03-02,5,-6
2021-03-03,8,-3
2021-03-04,11,-5
2021-03-05,0,-9
2021-03-06,3,-8
2021-03-07,8,-6
2021-03-08,9,-5
2021-03-09,11,-1
2021-03-10,12,0
2021-03-11,13,-1
2021-03-12,9,-5
2021-03-13,11,-1
2021-03-14,14,-7
2021-03-15,0,-10
2021-03-16,3,-6
2021-03-17,6,-2
2021-03-18,2,-2
2021-03-19,3,-6
2021-03-20,-1,-10
2021-03-21,3,-7
2021-03-22,9,-3
2021-03-23,14,0
2021-03-24,13,-3
2021-03-25,16,5
2021-03-26,14,-1
2021-03-27,16,-4
2021-03-28,6,-6
2021-03-29,9,-4
2021-03-30,16,1
2021-03-31,11,3
2021-04-01,9,1
2021-04-02,9,-2
2021-04-03,6,-6
2021-04-04,11,-1
2021-04-05,11,-1
2021-04-06,12,-3
2021-04-07,13,-1
2021-04-08,16,1
2021-04-09,16,3
2021-04-10,15,5
2021-04-11,11,2
2021-04-12,2,-8
2021-04-13,6,-4
2021-04-14,13,1
2021-04-15,10,-3
2021-04-16,4,-5
2021-04-17,13,-2
2021-04-18,17,1
2021-04-19,22,6
2021-04-20,22,6
2021-04-21,19,6
2021-04-22,15,5
2021-04-23,20,3
2021-04-24,13,5
2021-04-25,12,7
2021-04-26,15,1
2021-04-27,9,-1
2021-04-28,10,1
2021-04-29,6,0
2021-04-30,8,0
2021-05-01,13,1
2021-05-02,22,8
2021-05-03,19,1
2021-05-04,8,1
2021-05-05,18,3
2021-05-06,8,0
2021-05-07,20,4
2021-05-08,15,6
2021-05-09,20,5
2021-05-10,21,8
2021-05-11,25,7
2021-05-12,17,8
2021-05-13,19,10
2021-05-14,22,7
2021-05-15,13,5
2021-05-16,17,6
2021-05-17,20,10
2021-05-18,22,10
2021-05-19,23,10
2021-05-20,20,9
2021-05-21,26,13
2021-05-22,25,6
2021-05-23,13,2
2021-05-24,13,4
2021-05-25,24,8
2021-05-26,18,6
2021-05-27,18,4
2021-05-28,22,9
2021-05-29,25,10
2021-05-30,25,11
2021-05-31,16,4
2021-06-01,19,5
2021-06-02,14,5
2021-06-03,17,8
2021-06-04,20,8
2021-06-05,25,13
2021-06-06,25,13
2021-06-07,27,12
2021-06-08,18,9
2021-06-09,19,7
2021-06-10,25,13
2021-06-11,26,14
2021-06-12,28,16
2021-06-13,23,16
2021-06-14,26,14
2021-06-15,27,16
2021-06-16,16,10
2021-06-17,21,10
2021-06-18,23,11
2021-06-19,24,11
2021-06-20,27,12
2021-06-21,28,12
2021-06-22,28,15
2021-06-23,18,15
2021-06-24,21,15
2021-06-25,26,15
2021-06-26,27,16
2021-06-27,28,15
2021-06-28,29,17
2021-06-29,28,14
2021-06-30,27,13
2021-07-01,28,14
2021-07-02,21,12
2021-07-03,22,13
2021-07-04,26,15
2021-07-05,23,12
2021-07-06,25,14
2021-07-07,25,15
2021-07-08,28,16
2021-07-09,30,18
2021-07-10,32,17
2021-07-11,29,15
2021-07-12,17,16
2021-07-13,30,20
2021-07-14,31,19
2021-07-15,28,18
2021-07-16,29,18
2021-07-17,24,17
2021-07-18,26,16
2021-07-19,27,17
2021-07-20,27,16
2021-07-21,24,16
2021-07-22,22,15
2021-07-23,26,17
2021-07-24,28,18
2021-07-25,27,16
2021-07-26,26,14
2021-07-27,23,15
2021-07-28,24,16
2021-07-29,25,14
2021-07-30,29,16
2021-07-31,26,12
2021-08-01,22,11
2021-08-02,25,16
2021-08-03,18,13
2021-08-04,25,14
2021-08-05,24,13
2021-08-06,26,14
2021-08-07,28,15
2021-08-08,23,13
2021-08-09,26,13
2021-08-10,25,12
2021-08-11,25,11
2021-08-12,26,12
2021-08-13,26,14
2021-08-14,26,14
2021-08-15,25,13
2021-08-16,27,15
2021-08-17,27,15
2021-08-18,25,15
2021-08-19,24,13
2021-08-20,22,10
2021-08-21,26,14
2021-08-22,25,11
2021-08-23,24,8
2021-08-24,14,8
2021-08-25,15,9
2021-08-26,18,7
2021-08-27,20,9
2021-08-28,19,9
2021-08-29,21,9
2021-08-30,23,13
2021-08-31,22,13
2021-09-01,24,12
2021-09-02,25,13
2021-09-03,26,13
2021-09-04,16,10
2021-09-05,15,8
2021-09-06,20,10
2021-09-07,23,11
2021-09-08,23,10
2021-09-09,21,8
2021-09-10,28,12
2021-09-11,26,12
2021-09-12,25,13
2021-09-13,22,13
2021-09-14,23,13
2021-09-15,17,11
2021-09-16,18,6
2021-09-17,21,8
2021-09-18,20,11
2021-09-19,17,8
2021-09-20,19,7
2021-09-21,20,6
2021-09-22,24,10
2021-09-23,25,11
2021-09-24,19,11
2021-09-25,20,9
2021-09-26,18,9
2021-09-27,21,7
2021-09-28,23,6
2021-09-29,22,6
2021-09-30,19,2
2021-10-01,19,5
2021-10-02,24,10
2021-10-03,16,4
2021-10-04,7,2
2021-10-05,9,3
2021-10-06,8,0
2021-10-07,13,2
2021-10-08,12,5
2021-10-09,12,-1
2021-10-10,9,-3
2021-10-11,12,-5
2021-10-12,14,6
2021-10-13,12,6
2021-10-14,13,-1
2021-10-15,6,-9
2021-10-16,6,-5
2021-10-17,10,-2
2021-10-18,10,-9
2021-10-19,7,-5
2021-10-20,10,-7
2021-10-21,8,-6
2021-10-22,9,-6
2021-10-23,12,-3
2021-10-24,13,-1
2021-10-25,13,-2
2021-10-26,10,-6
2021-10-27,11,-3
2021-10-28,10,0
2021-10-29,12,-5
2021-10-30,9,-6
2021-10-31,6,-7
2021-11-01,9,-4
2021-11-02,8,-3
2021-11-03,10,-3
2021-11-04,13,0
2021-11-05,14,-7
2021-11-06,-7,-15
2021-11-07,-9,-16
2021-11-08,-5,-11
2021-11-09,-2,-6
2021-11-10,4,-10
2021-11-11,1,-8
2021-11-12,3,-7
2021-11-13,6,-6
2021-11-14,5,-10
2021-11-15,3,-8
2021-11-16,6,-8
2021-11-17,5,-5
2021-11-18,6,-9
2021-11-19,4,-8
2021-11-20,1,-12
2021-11-21,-7,-17
2021-11-22,-5,-13
2021-11-23,2,-11
2021-11-24,2,-8
2021-11-25,5,-11
2021-11-26,5,-7
2021-11-27,7,-4
2021-11-28,7,-5
2021-11-29,-2,-12
2021-11-30,-6,-12
2021-12-01,-1,-12
2021-12-02,2,-10
2021-12-03,4,-10
2021-12-04,5,-8
2021-12-05,4,-12
2021-12-06,2,-13
2021-12-07,2,-6
2021-12-08,2,-8
2021-12-09,1,-9
2021-12-10,2,-10
2021-12-11,-2,-17
2021-12-12,-5,-15
2021-12-13,-2,-13
2021-12-14,-1,-11
2021-12-15,0,-15
2021-12-16,-9,-21
2021-12-17,-11,-21
2021-12-18,-6,-12
2021-12-19,0,-10
2021-12-20,2,-11
2021-12-21,3,-13
2021-12-22,2,-12
2021-12-23,-5,-19
2021-12-24,-14,-26
2021-12-25,-15,-22
2021-12-26,-6,-17
2021-12-27,-3,-15
2021-12-28,-2,-18
2021-12-29,-4,-13
2021-12-30,-3,-14
2021-12-31,-1,-15

接下来就是写python3代码处理数据,画图了:

#wlcb_tem.pyimport csv
from datetime import datetime
from matplotlib import pyplot as plt
from read_fun import read_fun#读入乌兰察布2021年全年日期、最高气温和最低气温
dates = []
highs = []
lows = []
read_fun(dates,highs,lows)#画图分析
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.title("Ulanqab City daily high(red) and low(blue) temperatures - 2021")
plt.xlabel("",fontsize=14)
plt.ylabel("Temperature (Celsius)")
plt.tick_params(axis='both',which='major',labelsize=14)
fig.autofmt_xdate()
plt.fill_between(dates,highs,lows,alpha=0.1)plt.show()
#read_fun.pyimport csv
from datetime import datetime #dates:日期集合
#highs:最高气温集合
#lows:最低气温集合
def read_fun(dates,highs,lows):file_name = "date_file.csv"with open(file_name) as f:reader = csv.reader(f)header_row = next(reader)for row in reader:try:date = datetime.strptime(row[0],"%Y-%m-%d")#必须把两个气温都转换成int类型,不然画图y轴坐标会乱码high = int(row[1])low = int(row[2])except ValueError:print(date,",data missing.")else:dates.append(date)highs.append(high)lows.append(low)

python的16.1节课后练习16-2比较希特卡和死亡谷的气温的问题,最后图像为什么出现乱码?相关推荐

  1. 《Swift开发实战》——第16章,第16.2节下标脚本用法

    本节书摘来自异步社区<Swift开发实战>一书中的第16章,第16.2节下标脚本语法,作者 李宁,更多章节内容可以访问云栖社区"异步社区"公众号查看 16.2 下标脚本 ...

  2. 《Python编程从入门到实践》16.2.6收盘价均值,代码理解

    在学习<Python编程从入门到实践>16.2.6收盘价均值这块时,代码不是很清晰,里面有lambda法则等,可能作者不想涉及太多高级内容所以没有详细写,自己把自己的理解过程记录如下. 本 ...

  3. python毕业设计项目源码选题(16)跳蚤市场二手物品交易系统毕业设计毕设作品开题报告开题答辩PPT

    python毕业设计项目源码选题(16)跳蚤市场二手物品交易系统毕业设计毕设作品开题报告开题答辩PPT [普通用户功能模块] 用户注册:填写手机账号和密码,注册新用户 登录功能:注册普通账号登录:登录 ...

  4. 黄梯云主编管理信息系统课后答案1-6

    http://download.csdn.net/my 黄梯云主编管理信息系统课后答案1-6

  5. python修改文件名称唯美_5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了...

    原创:小dull鸟 python数据分析之禅 原文链接: 5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了​mp.weixin.qq.com 有时候我们做数据可视化并 ...

  6. python程序设计第3版课后答案_python程序设计第三版课后答案

    python程序设计第三版课后答案 更多相关问题 该图中XOY为地轴,MN为赤道,EF.E′F′为回归线,ST.S′T′为极圈.读图,回答下列问题.(10分)(1)目前黄赤交角在图上 (共10分,每空 ...

  7. 中国大学MOOC实用Python程序设计学习笔记和课后测试1-3周(北京大学)

    中国大学MOOC实用Python程序设计学习笔记和课后测试1-3周(北京大学) 第1周 Python初探 为project设置解释器 保留字 第1周课后测试题 第2周 基本运算.条件分支和输出格式控制 ...

  8. 计算机编程导论python程序设计答案-学堂在线_计算机科学与Python编程导论_作业课后答案...

    学堂在线_计算机科学与Python编程导论_作业课后答案 答案: 更多相关问题 近代中国完全沦为半殖民地半封建社会的标志是:A.<马关条约>B.<辛丑条约>C.<凡尔赛和 ...

  9. 微课|中学生可以这样学Python(8.1节):解析算法例题讲解

    适用教材: 董付国,应根球.<中学生可以这样学Python>.清华大学出版社,2017. 第8章  常用算法的Python实现 8.1  解析算法案例分析 京东购买链接:https://i ...

最新文章

  1. Linux常用命令——fsck
  2. 专栏 | 基于 Jupyter 的特征工程手册:数据预处理(二)
  3. Tomcat安装及配置教程(超详细的图文教程)(亲测)
  4. 利用java实现android项目结构API文档
  5. Oracle新建用户并授权
  6. selenium-webdriver for node 鼠标滑动到指定元素
  7. 蛋壳租客迎来好消息!微众银行开放贷款结清入口
  8. jquery-ui 对话框_jQuery UI对话框插件
  9. bvp解算器是什么_中科院孙晓明:算法本身并没有善恶,看你想要的目标是什么...
  10. win10间歇性闪屏_手把手解决win10系统一直闪屏的技巧
  11. Python精讲:Python中集合的概念和创建方法详解
  12. AS 使用Statistic插件统计代码行数
  13. 用代码写个烟花之基础版
  14. P5200 Sleepy Cow Sorting(树状数组,模拟)
  15. 期末前端web大作业——动漫客栈响应式bootstarp(7页) 排版整洁,内容丰富,主题鲜明
  16. excel手机版_微软的新办公利器,这才是手机办公该有的亚子!
  17. 谈论AI之前,你搞懂人类了吗?
  18. elasticsearch数据迁移
  19. iOS开发:兼容适配iPhone X
  20. Oxygen Eclipse安装Java EE

热门文章

  1. 四-1、Cadence Allegro推荐操作方式和视图命令
  2. $()是有两个参数,第一个是选择器,第二个是作用域
  3. [Python图像处理] 四十一.Python图像平滑万字详解(均值滤波、方框滤波、高斯滤波、中值滤波、双边滤波)
  4. [java] javax.el.PropertyNotFoundException: Property 'id' not found on type bean.Student
  5. [Python学习] 专题三.字符串的基础知识
  6. 【数据结构与算法】之深入解析“我的日程安排表II”的求解思路与算法示例
  7. 【数据结构与算法】之深入解析“字符串相乘”的求解思路与算法示例
  8. 在一颗度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶结点个数是( )
  9. LeetCode 421. 数组中两个数的最大异或值
  10. 【C++】Visual Studio教程(三) - 项目和解决方案