问答

我想问下我要爬取长沙2020年每个月的气温数据平均值并可视化,应

作者:admin 2021-05-09 我要评论

import pandas as pd from matplotlib import pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文问题 plt.rcParams['axes.unicode\_minus...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

import pandas as pd
from matplotlib import pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文问题
plt.rcParams['axes.unicode\_minus'] = False # 解决负号显示问题

第一步:数据读取

df = pd.read\_csv('changsha.csv')
data = df[-15:]

print(data)

第二步:数据处理(由于我们知道文本内容,不存在脏数据,故忽略数据清理步骤)

data['最高气温'] = data['气温'].str.split('/', expand=True)[0]
data['最低气温'] = data['气温'].str.split('/', expand=True)[1]
data['最高气温'] = data['最高气温'].map(lambda x: int(x.replace('℃', '')))
data['最低气温'] = data['最低气温'].map(lambda x: int(x.replace('℃', '')))
data['日期'] = data['日期'].map(lambda x: "{}年{}月{}日".format(str(x)[:4], str(x)[4:6], str(x)[-2:]))
dates = data['日期']
highs = data['最高气温']
lows = data['最低气温']

设置画布大小及比例

fig = plt.figure(dpi=128, figsize=(10, 6))

设置最高温最低温线条颜色及宽度等信息

L1, = plt.plot(dates, lows, label='最低气温')
L2, = plt.plot(dates, highs, label='最高气温')
plt.legend(handles=[L1, L2], labels=['最低气温', '最高气温'], loc='best') # 添加图例

设置图形格式

plt.title('近15天的天气情况', fontsize=25) # 字体大小设置为25
plt.xlabel('日期', fontsize=10) # x轴显示 日期,字体大小设置为10
fig.autofmt\_xdate() # 绘制斜的日期标签,避免重叠
plt.ylabel('气温', fontsize=10) # y轴显示 气温,字体大小设置为10
plt.tick\_params(axis='both', which='major', labelsize=10)

修改刻度

plt.xticks(dates[::1]) # 由于数据不多,将每天的数据全部显示出来

显示折线图

plt.show()### 题目描述

题目来源及自己的思路

相关代码

粘贴代码文本(请勿用截图)

你期待的结果是什么?实际看到的错误信息又是什么?

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • grom设置json默认值

    grom设置json默认值

  • Vue路由报错,看着没问题

    Vue路由报错,看着没问题

  • 思否邮箱登录为什么区分大小写了呢?

    思否邮箱登录为什么区分大小写了呢?

  • 有没有能够直接上传markdown文件作为博

    有没有能够直接上传markdown文件作为博

腾讯云代理商
海外云服务器