2020-10-05 Python编程从入门到实践 第16章 下载数据 动手试
2020-10-05 Python编程从入门到实践 第16章 下载数据 动手试一试 16-2 比较锡特卡和死亡谷的气温 习题练习
你还可以尝试在一个图表呈现这两个数据集
#compare_DeathValley_and_Sitka_weather.py
#__author__ = 'Liu Shao Ji'
#encoding=utf-8
import csv
from datetime import datetime
from matplotlib.pyplot import MultipleLocator
import matplotlib.pyplot as plt
from C16.try_page_324.try_16_2_2.read_data import read_excel_temp
from C16.try_page_324.try_16_2_2.draw_map import data_draw_map
file_name_1= "death_valley_2014.csv"
file_name_2= "sitka_weather_2014.csv"
DeathValley_Data=read_excel_temp(file_name_1)
DeathValley_weather_Data=DeathValley_Data.get_dates_high_low()
Sitka_Data=read_excel_temp(file_name_2)
Sitka_weather_Data=Sitka_Data.get_dates_high_low()
# print("死亡谷")
#
# print(DeathValley_weather_Data[0])#日期
# print(DeathValley_weather_Data[1])#最高温度
# print(DeathValley_weather_Data[2])#最低温度
# print(DeathValley_weather_Data[3])#表头
#
# print("锡特卡")
#
# print(Sitka_weather_Data[0])#日期
# print(Sitka_weather_Data[1])#最高温度
# print(Sitka_weather_Data[2])#最低温度
# print(Sitka_weather_Data[3])#表头
obj_list=[]
obj_list.append(DeathValley_weather_Data)
obj_list.append(Sitka_weather_Data)
print("包含两个城市天气的数据放在obj_list中\n")
print(obj_list)
print(obj_list[0])
print(obj_list[1])
# def __init__(self,header_row,dates,highs,lows,title):
# draw_map=data_draw_map(DeathValley_weather_Data[3],
# DeathValley_weather_Data[0],
# DeathValley_weather_Data[1],
# DeathValley_weather_Data[2],
# "Compare DethValley and Sitka Weather")
# draw_map.draw_map()
print("尝试解释obj_list:\n")
draw_map=data_draw_map(obj_list,DeathValley_weather_Data[3],"two city weather compare")
# draw_map.circle_list()
draw_map.draw_map()
#read_data.py
#__author__ = 'Liu Shao Ji'
#encoding=utf-8
import csv
from datetime import datetime
#用于设置y轴的范围
from matplotlib.pyplot import MultipleLocator
import matplotlib.pyplot as plt
class read_excel_temp():
def __init__(self,file_name):
self.file_name=file_name
def get_dates_high_low(self):
filename=self.file_name
with open(filename) as f:
reader= csv.reader(f)
"""虽然灰色看似没有调用,header_row=next(reader)这行不能注释掉"""
header_row=next(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])
#华氏转摄氏
high_c=(float(row[1])-32)/1.8
low_c=(float(row[3])-32)/1.8
except ValueError:
print(current_date,'missing data')
else:
dates.append(current_date)
highs.append(high_c)
lows.append(low_c)
return(dates,highs,lows,header_row)
file_name= "death_valley_2014.csv"
sample=read_excel_temp(file_name)
dates_and_highs_and_lows=sample.get_dates_high_low()
print(dates_and_highs_and_lows[0])#日期
print(dates_and_highs_and_lows[1])#最高温度
print(dates_and_highs_and_lows[2])#最低温度
print(dates_and_highs_and_lows[3])#表头
#draw_map.py
#__author__ = 'Liu Shao Ji'
#encoding=utf-8
import csv
from datetime import datetime
#用于设置y轴的范围
import random
from matplotlib.pyplot import MultipleLocator
import matplotlib.pyplot as plt
class data_draw_map():
#接受一个列表
# def __init__(self,header_row,dates,highs,lows,title):
# self.header_row=header_row
# self.dates=dates
# self.highs=highs
# self.lows=lows
# self.title=title
# # print(Sitka_weather_Data[0])#日期
# # print(Sitka_weather_Data[1])#最高温度
# # print(Sitka_weather_Data[2])#最低温度
# # print(Sitka_weather_Data[3])#表头
def __init__(self,data_list,header_row,title):
self.data_list=data_list
self.header_row=header_row
self.title=title
# def circle_list(self):
# objs=self.list
# for o in objs:
# dates=o[0]
# highs=o[1]
# lows=o[2]
# header_row=o[3]
# print(dates)
# print(highs)
# print(lows)
# print(header_row)
def random_color(self):
list_number=list(range(0,101))
a=random.choice(list_number)
b=a/100
return b
def draw_map(self):
for index,column_header in enumerate(self.header_row):
print(index,column_header)
"""根据数据绘制气温图表"""
fig = plt.figure(dpi=128,figsize=(10,6))
'''321'''
"""生成随机颜色"""
print("死亡谷日期:"+str(self.data_list[0][0]))
print("死亡谷高温:"+str(self.data_list[0][1]))
print("死亡谷低温:"+str(self.data_list[0][2]))
plt.plot(self.data_list[0][0],self.data_list[0][1],c=(1,self.random_color(),self.random_color()),alpha=0.5)
plt.plot(self.data_list[0][0],self.data_list[0][2],c=(1,self.random_color(),self.random_color()),alpha=0.5)
plt.plot(self.data_list[1][0],self.data_list[1][1],c=(self.random_color(),1,self.random_color()),alpha=0.5)
plt.plot(self.data_list[1][0],self.data_list[1][2],c=(self.random_color(),1,self.random_color()),alpha=0.5)
plt.fill_between(self.data_list[0][0],self.data_list[0][1],self.data_list[0][2],facecolor=(1,self.random_color(),self.random_color()),alpha=0.3)
plt.fill_between(self.data_list[1][0],self.data_list[1][1],self.data_list[1][2],facecolor=(self.random_color(),1,self.random_color()),alpha=0.3)
# title="Daily high temperatures,-2014\nDeath Valley,CA"
plt.title(self.title,fontsize=24)
plt.xlabel('',fontsize=16)
fig.autofmt_xdate()
plt.ylabel("Temperature(C)",fontsize=16)
plt.tick_params(axis='both',which='major',labelsize=10)
#y轴的刻度
y_major_locator=MultipleLocator(5)
ax=plt.gca()
ax.yaxis.set_major_locator(y_major_locator)
plt.ylim(-10,50)
plt.show()
2020-10-05 Python编程从入门到实践 第16章 下载数据 动手试相关教程
Python生成依赖性应用的DAG(有向无环图)拓扑
Python生成依赖性应用的DAG(有向无环图)拓扑 因为研究方向设计到依赖性的应用,做实验需要用到一些随机的DAG(有向无环图)拓扑来作为应用的表示,找了找网上没有符合的代码,于是决定自己写个小脚本来生成大量随机的DAG拓扑。 我实验中要用到的依赖性应用拓扑
Java基础编程练习题12(求不重复数字)
Java基础编程练习题12(求不重复数字) 题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位、十位、个位的数字都是 1、2、3、4。组成所有的排列后再去 掉不满足条件的排 列。 package lianxi;public cl
python第二阶段(19)numpy入门基础-可视化之颜色和样式
python第二阶段(19)numpy入门基础-可视化之颜色和样式 numpy入门基础-可视化之颜色和样式 1、颜色 1)内置颜色 2)灰度阴影 3)十六进制表示颜色 4)RGB元组表示颜色 2、点和线的样式 1)点样式 2)线样式 3)点和线的混用样式 3、作业 演示: 1、颜色 八种
带你了解python爬虫requests模块BeautifulSoup使用方式
带你了解python爬虫requests模块BeautifulSoup使用方式! 相对于python自带的urllib模块,requests模块提供了相对更高层的api来进行网页访问的工作。 对于requests模块,使用很简单,一般我们会用到两个函数: requests.get(url,params=None,**kwargs) 这里
Python面向对象设计:对象与类,继承————以大鱼吃小鱼为例
Python面向对象设计:对象与类,继承————以大鱼吃小鱼为例 前言 编写类时,并非总是要从空白开始。如果要编写的类是另一个现成类的特殊版本,可使用继承。一个类继承另一个类时,它将自动获得另一个类的所有属性和方法;原有的类称为父类,而新类称为子类
Python查看、修改pip install 默认使用的pip库
Python查看、修改pip install 默认使用的pip库 一、更改 Python 的 pip install 默认使用的pip库 【方法】只需要将对应python脚本的路径添加到系统环境变量Path中较前的位置即可,这样就可以获得优先级。 1、打开终端,可以通过指令 pip show pip 查看默认使
CCF 201809-3 元素选择器(Python100分)
CCF 201809-3 元素选择器(Python100分) CCF历届真题 部分题解 ,点击进入 问题描述 试题编号: 201809-3 试题名称: 元素选择器 时间限制: 1.0s 内存限制: 256.0MB 问题描述: n,m=map(int,input().split())doc=[]for i in range(n): s=input() level=s.c
Java9 并发编程实战笔记
Java9 并发编程实战笔记 1.线程的创建、运行和设置 ??存放线程将要运行的指令:计算20000以内的素数 package com.company.ConcurencyCookbook;/** * 线程的创建设置与运行 */public class Calculator implements Runnable{ @Override public void run() { lon