使用matplotlib绘制每月的最高温度
来源:互联网 发布:阿里云服务器转让 编辑:程序博客网 时间:2024/05/23 20:39
# ========== Python3 + Jupyter ========== ## 导入所需的第三方包import datetimeimport calendarimport requestsfrom bs4 import BeautifulSoupimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns# 采集数据# 上海2017年9月份历史气温数据url = 'http://lishi.tianqi.com/huludao/201710.html'plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'plt.rcParams['axes.unicode_minus'] = False# 发送爬虫请求response = requests.get(url).text# 解析源代码soup = BeautifulSoup(response, 'html.parser')# 根据HTML标记语言,查询目标标记下的数据datas = soup.findAll('div',{'class':'tqtongji2'})[0].findAll('ul')[1:]# 抓取日期数据date = [i.findAll('li')[0].text for i in datas]# 抓取最高温数据low = [i.findAll('li')[1].text for i in datas]# 创建数据框df = pd.DataFrame({'date':date, 'low':low})# 变量类型"""2"""# 将date变量转换为日期类型df.date = pd.to_datetime(df.date)# 将high变量转换成数值型df.low = df.low.astype('int')# 数据处理# 由日期型数据衍生出weekdaydf['weekday'] = df.date.apply(pd.datetime.weekday)# 由日期型数据计算week_of_month,即当前日期在本月中是第几周# 由于没有现成的函数,这里自定义一个函数来计算week_of_monthdef week_of_month(tgtdate): # 由日期型参数tgtdate计算该月的天数 days_this_month = calendar.mdays[tgtdate.month] # 通过循环当月的所有天数,找出第二周的第一个日期 for i in range(1, days_this_month + 1): d = datetime.datetime(tgtdate.year, tgtdate.month, i) if d.day - d.weekday() > 0: startdate = d break # 返回日期所属月份的第一周 return (tgtdate - startdate).days //7 + 1df['week_of_month'] = df.date.apply(week_of_month)df.head()"""4"""# 通过透视图函数形成绘图数据target = pd.pivot_table(data = df.iloc[:,1:],values = 'low', index = 'week_of_month', columns = 'weekday')# 绘图ax = sns.heatmap(target, # 指定绘图数据 cmap=plt.cm.Reds, # 指定填充色 linewidths=.1, # 设置每个单元方块的间隔 annot=True # 显示数值 )# 添加x轴刻度标签(加0.5是为了让刻度标签居中显示)plt.xticks(np.arange(7)+0.5,['周一','周二','周三','周四','周五','周六','周日'])# 可以将刻度标签置于顶部显示# ax.xaxis.tick_top()# 添加y轴刻度标签plt.yticks(np.arange(5)+0.5,['第一周','第二周','第三周','第四周','第五周'])# 旋转y刻度0度,即水平显示plt.yticks(rotation = 0)# 设置标题和坐标轴标签ax.set_title('葫芦岛市2017年10月份每日最高气温分布图')ax.set_xlabel('')ax.set_ylabel('')# 显示图形plt.show()
阅读全文
0 0
- 使用matplotlib绘制每月的最高温度
- 使用 Matplotlib 绘制精美的数学图形
- 使用matplotlib绘制简单的折线图
- 用Matplotlib绘制股票每月最高收盘价曲线
- 使用matplotlib绘制图表
- 使用matplotlib绘制散点图
- Python:使用matplotlib绘制图表
- Python:使用matplotlib绘制图表
- Python:使用matplotlib绘制图表
- 使用matplotlib绘制图像初步
- 使用matplotlib绘制动态图
- Python:使用matplotlib绘制图表
- 使用matplotlib绘制三维图形
- 使用matplotlib绘制自定义图形
- matplotlib绘制动画的示例
- matplotlib-绘制精美的图表
- matplotlib-绘制精美的图表
- matplotlib绘制动画的示例
- Java中Enum类型的序列化及类升级不建议用枚举的原因
- 吴恩达Coursera机器学习课程笔记-单变量线性回归
- java如何获取double数据,保留两位(不进行四舍五入)
- 7.6
- easyui学习
- 使用matplotlib绘制每月的最高温度
- roaringBitMap
- (十四)SpringBoot使用AOP统一处理Web请求日志添加MDC
- C语言贪心算法之找点
- WebStorm快捷键大全
- 创建外部样式表
- JAVA集合类汇总
- Java爬虫抓取网页
- StringMVC入门