科学计算可视化大作业

科学计算可视化大作业报告
jdz_ksh.py

import pandas as pd
from matplotlib import pyplot as plt

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

data = pd.read_csv("景德镇天气.csv")

data['最高气温'] = data['气温'].str.split("'",expand=True)[1]     #extend=True 将数据分为n个纵列,并标记id
data['最低气温'] = data['气温'].str.split("'",expand=True)[5]
# print(data['气温'])
# print(data['最高气温'])
# print(data['最低气温'])

data['最高气温'] = data['最高气温'].map(lambda x:int(x.replace('℃','')))
data['最低气温'] = data['最低气温'].map(lambda x:int(x.replace('℃','')))
#将气温“x℃”转换为数字类型,然后使用pandas里的map函数替换原来的值,方便做Y轴参数
#replace函数,replace(to_replace, value),将前面的值转化为后面的值

dates = data['日期']
highs = data['最高气温']
lows = data['最低气温']

#画图 配置参数
fig =  plt.figure(dpi=128,figsize=(10,6))   #设定画布分辨率,宽和高
plt.plot(dates,highs,c='red',alpha=0.5)     #alpha 透明度,越接近1越不透明
plt.plot(dates,lows,c='blue',alpha=0.5)
plt.fill_between(dates,highs,lows,facecolor='blue',alpha=0.2)
#填充highs和lows之间的空隙

#外围标签
plt.title('2022年12月景德镇天气情况',fontsize=24)        #标题
plt.xlabel("",fontsize=6)                             #绘制X轴
fig.autofmt_xdate()                                   #绘制斜的目标标签,避免重叠
plt.ylabel("气温",fontsize=12)
plt.tick_params(axis='both',which='major',labelsize=10)     #设置坐标轴属性

plt.show()

jdz_weather.py

import requests
from bs4 import BeautifulSoup
import pandas as pd

headers = {
    "user-agent":"Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36",
}
url = "http://www.tianqihoubao.com/lishi/jingdezhen/month/202212.html"

res = requests.get(url,headers=headers)
html =  res.content.decode('gbk')
#print(html.text)
soup = BeautifulSoup(html,'lxml')
list = soup.find_all('tr')
#print(list)
dates,conditions,temp = [],[],[]
for i in list[1:]:              #从第二列开始是天气数据
    data = i.text.split()       #对文字内容进行分段
    #print(data)
    #data[0] = ['2020年04月01日', '阴', '/阴', '13℃', '/', '7℃', '东北风', '3-4级', '/东北风', '3-4级']
    dates.append(data[0])
    conditions.append(data[1:3])
    temp.append(data[3:6])
#print(dates,conditions,temp)
data_mouth = pd.DataFrame()      #通过pandas创建一个数据集,存放天气信息
data_mouth['日期'] = dates
data_mouth['天气情况'] = conditions
data_mouth['气温'] = temp

print(data_mouth)

data_mouth.to_csv("景德镇天气.csv",index=False,encoding='utf-8') #导入到csv文件,不保留行索引

文件内容:
分别为可视化代码、爬取数据代码、爬取的数据:
在这里插入图片描述

使用的数据:
网址:景德镇历史天气预报查询_2022年12月份景德镇天气记录_景德镇2022年12月份天气情况_天气后报 (tianqihoubao.com)
在这里插入图片描述

数据构成:
日期、天气状况、最低气温/最高温度、风力风向

维度:二维

可视化方案:统计图表

选择该可视化方案的原因:较为直观,可以很好地展现每一天的温度、温差,以及温度变化的趋势,而这也是人们查看天气情况最关注的问题

可视化图:
在这里插入图片描述

说明的问题:
2022年12月,景德镇市每日温差普遍较大,且温度普遍较低,要注意防寒保暖,早晚添衣。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值