iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python如何实现将天气预报可视化
  • 773
分享到

python如何实现将天气预报可视化

2023-06-22 08:06:05 773人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章将为大家详细讲解有关python如何实现将天气预报可视化,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。结果展示其中:红线代表当天最高气温,蓝线代表最低气温,最高气温点上的标注为当天的天气情况。如果

这篇文章将为大家详细讲解有关python如何实现将天气预报可视化,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

结果展示

其中:

红线代表当天最高气温,蓝线代表最低气温,最高气温点上的标注为当天的天气情况。

如果使夜晚运行程序,则最高气温和最低气温的点会重合,使由爬取数据产生误差导致的。

python如何实现将天气预报可视化

程序代码

详细请看注释

# -*- coding: UTF-8 -*-"""# @Time: 2022/1/4 11:02# @Author: 远方的星# @CSDN: https://blog.csdn.net/qq_44921056"""import chardetimport requestsfrom lxml import etreefrom fake_useragent import UserAgentimport pandas as pdfrom matplotlib import pyplot as plt# 随机产生请求头ua = UserAgent(verify_ssl=False, path='D:/PyCharm/fake_useragent.JSON')# 随机切换请求头def random_ua():    headers = {        "user-agent": ua.random    }    return headers# 解析页面def res_text(url):    res = requests.get(url=url, headers=random_ua())    res.encoding = chardet.detect(res.content)['encoding']    response = res.text    html = etree.HTML(response)    return html# 获得未来七天及八到十五天的页面链接def get_url(url):    html = res_text(url)    url_7 = 'Http://www.weather.com.cn/' + html.xpath('//*[@id="someDayNav"]/li[2]/a/@href')[0]    url_8_15 = 'http://www.weather.com.cn/' + html.xpath('//*[@id="someDayNav"]/li[3]/a/@href')[0]    # print(url_7)    # print(url_8_15)    return url_7, url_8_15# 获取未来七天的天气情况def get_data_7(url):    html = res_text(url)    list_s = html.xpath('//*[@id="7d"]/ul/li')  # 获取天气数据列表    Date, Weather, Low, High = [], [], [], []    for i in range(len(list_s)):        list_date = list_s[i].xpath('./h2/text()')[0]  # 获取日期,如:4日(明天)        # print(list_data)        list_weather = list_s[i].xpath('./p[1]/@title')[0]  # 获取天气情况,如:小雨转雨夹雪        # print(list_weather)        tem_low = list_s[i].xpath('./p[2]/i/text()')  # 获取最低气温        tem_high = list_s[i].xpath('./p[2]/span/text()')  # 获取最高气温        if tem_high == []:  # 遇到夜晚情况,筛掉当天的最高气温            tem_high = tem_low  # 无最高气温时,使最高气温等于最低气温        tem_low = int(tem_low[0].replace('℃', '')) # 将气温数据处理        tem_high = int(tem_high[0].replace('℃', ''))        # print(type(tem_high))        Date.append(list_date), Weather.append(list_weather), Low.append(tem_low), High.append(tem_high)    excel = pd.DataFrame()  # 定义一个二维列表    excel['日期'] = Date    excel['天气'] = Weather    excel['最低气温'] = Low    excel['最高气温'] = High    # print(excel)    return exceldef get_data_8_15(url):    html = res_text(url)    list_s = html.xpath('//*[@id="15d"]/ul/li')    Date, Weather, Low, High = [], [], [], []    for i in range(len(list_s)):        # data_s[0]是日期,如:周二(11日),data_s[1]是天气情况,如:阴转晴,data_s[2]是最低温度,如:/-3℃        data_s = list_s[i].xpath('./span/text()')        # print(data_s)        date = modify_str(data_s[0])  # 获取日期情况        weather = data_s[1]        low = int(data_s[2].replace('/', '').replace('℃', ''))        high = int(list_s[i].xpath('./span/em/text()')[0].replace('℃', ''))        # print(date, weather, low, high)        Date.append(date), Weather.append(weather), Low.append(low), High.append(high)    # print(Date, Weather, Low, High)    excel = pd.DataFrame()  # 定义一个二维列表    excel['日期'] = Date    excel['天气'] = Weather    excel['最低气温'] = Low    excel['最高气温'] = High    # print(excel)    return excel# 将8-15天日期格式改成与未来7天一致def modify_str(date):    date_1 = date.split('(')    date_2 = date_1[1].replace(')', '')    date_result = date_2 + '(' + date_1[0] + ')'    return date_result# 实现数据可视化def get_image(date, weather, high, low):    # 用来正常显示中文标签    plt.rcParams['font.sans-serif'] = ['SimHei']    # 用来正常显示负号    plt.rcParams['axes.unicode_minus'] = False    # 根据数据绘制图形    fig = plt.figure(dpi=128, figsize=(10, 6))    ax = fig.add_subplot(111)    plt.plot(date, high, c='red', alpha=0.5, marker='*')    plt.plot(date, low, c='blue', alpha=0.5, marker='o')    # 给图表中两条折线中间的部分上色    plt.fill_between(date, high, low, facecolor='blue', alpha=0.2)    # 设置图表格式    plt.title('邳州近15天天气预报', fontsize=24)    plt.xlabel('日期', fontsize=12)    # 绘制斜的标签,以免重叠    fig.autofmt_xdate()    plt.ylabel('气温', fontsize=12)    # 参数刻度线设置    plt.tick_params(axis='both', which='major', labelsize=10)    # 修改刻度    plt.xticks(date[::1])    # 对点进行标注,在最高气温点处标注当天的天气情况    for i in range(15):        ax.annotate(weather[i], xy=(date[i], high[i]))    # 显示图片    plt.show()def main():    base_url = 'http://www.weather.com.cn/weather1d/101190805.shtml'    url_7, url_8_15 = get_url(base_url)    data_1 = get_data_7(url_7)    data_2 = get_data_8_15(url_8_15)    data = pd.concat([data_1, data_2], axis=0, ignore_index=True)  # ignore_index=True实现两张表拼接,不保留原索引    get_image(data['日期'], data['天气'], data['最高气温'], data['最低气温'])if __name__ == '__main__':    main()

关于“Python如何实现将天气预报可视化”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: python如何实现将天气预报可视化

本文链接: https://www.lsjlt.com/news/303524.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python如何实现将天气预报可视化
    这篇文章将为大家详细讲解有关python如何实现将天气预报可视化,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。结果展示其中:红线代表当天最高气温,蓝线代表最低气温,最高气温点上的标注为当天的天气情况。如果...
    99+
    2023-06-22
  • python将天气预报可视化
    目录前言结果展示程序代码期望前言 在想题材之际,打开私信,有许多萌新&小伙伴询问我之前写的一篇《python爬取天气预报数据,并实现数据可视化》中的bug怎么解决,虽然我在之...
    99+
    2024-04-02
  • python怎么实现播报天气预报
    要实现播报天气预报,可以使用Python的语音合成库,如pyttsx3或gTTS。下面是使用pyttsx3库的示例代码:```pyt...
    99+
    2023-08-31
    python
  • Python实现爬取天气数据并可视化分析
    目录核心功能设计实现步骤爬取数据风向风级雷达图温湿度相关性分析24小时内每小时时段降水24小时累计降雨量今天我们分享一个小案例,获取天气数据,进行可视化分析,带你直观了解天气情况! ...
    99+
    2024-04-02
  • Python怎么实现天气预报系统
    这篇“Python怎么实现天气预报系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python怎么实现天气预报系统”文章吧...
    99+
    2023-07-04
  • Vue实现天气预报功能
    本文为大家分享了Vue实现天气预报功能的具体代码,供大家参考,具体内容如下 1、功能描述 在搜索框中输入城市,下方出现今天及未来四天的天气情况。搜索框下面固定了几个城市,点击可以快速...
    99+
    2024-04-02
  • Python实战之天气预报系统的实现
    目录前言一、前期准备二、代码展示三、效果展示前言 鼎鼎大名的南方城市长沙很早就入冬了,街上各种大衣,毛衣,棉衣齐齐出动。 这段时间全国各地大风呜呜地吹,很多地方断崖式降温。 虽然前几...
    99+
    2022-12-19
    Python天气预报系统 Python天气预报
  • Python+xlwings如何制作天气预报表
    这篇文章主要为大家分析了Python+xlwings如何制作天气预报表的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Python+xlwings如何制作天气...
    99+
    2023-06-28
  • Python怎么实现爬取天气数据并可视化分析
    本篇内容主要讲解“Python怎么实现爬取天气数据并可视化分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么实现爬取天气数据并可视化分析”吧!核心功能设计总体来说,我们需要先对中...
    99+
    2023-06-29
  • Android简单实现天气预报App
    本文实例为大家分享了Android简单实现天气预报App的具体代码,供大家参考,具体内容如下 一、UI设计 首页UI <xml version="1.0" encoding="...
    99+
    2024-04-02
  • Vue实现天气预报小应用
    这是本人在自学vue框架时候所模仿的一个网站,可以查询一些城市的天气情况,大家可以看看: html代码 <!DOCTYPE html> <html lang="...
    99+
    2024-04-02
  • Python爬取天气数据及可视化分析
    正文 大家好,我是Python人工智能技术天气预报我们每天都会关注,我们可以根据未来的天气增减衣物、安排出行,每天的气温、风速风向、相对湿度、空气质量等成为关注的焦点。得到温湿度度变化曲线、空气质量图、风向雷达图等结果,为获得未来天气信息提...
    99+
    2023-05-14
    Python 天气数据 可视化分析
  • AJAX怎么实现天气预报功能
    这篇文章主要介绍“AJAX怎么实现天气预报功能”,在日常操作中,相信很多人在AJAX怎么实现天气预报功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”AJAX怎么实现天气预报...
    99+
    2024-04-02
  • 怎么用jQuery ajax实现天气预报
    这篇文章主要介绍“怎么用jQuery ajax实现天气预报”,在日常操作中,相信很多人在怎么用jQuery ajax实现天气预报问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • Linux 命令行下如何实现浏览天气预报
    这篇文章主要介绍“Linux 命令行下如何实现浏览天气预报”,在日常操作中,相信很多人在Linux 命令行下如何实现浏览天气预报问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux 命令行下如何实现浏览天...
    99+
    2023-06-12
  • python如何制作的天气预报小工具
    这篇文章主要介绍python如何制作的天气预报小工具,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一.准备工作不需要准备。二.预览1.启动启动以后自动定位所在城市,展示定位城市的天气。2.添加城市3.展示多个城市天气...
    99+
    2023-06-15
  • win11天气预报栏如何打开
    这篇文章主要讲解了“win11天气预报栏如何打开”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win11天气预报栏如何打开”吧!首先右键任务栏空白处,打开“任务栏设置”。接着打开其中的“小组...
    99+
    2023-07-02
  • 如何使用python实现定时报天气
    小编给大家分享一下如何使用python实现定时报天气,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一.分析爬取目标这里就不爬取股票的信息,我来爬一个天气预报的信息...
    99+
    2023-06-25
  • 利用Java实现天气预报播报功能
    目录实验代码WeatherState.javaWeather.javaWeatherForecast.javaCloudyLittleState.javaCloudyDayState...
    99+
    2024-04-02
  • python采集天气数据并做数据可视化
    目录前言知识点:开发环境:采集天气数据代码数据分析代码尾语前言 最近天气好像有了点小脾气,总是在万分晴朗得时候耍点小性子~ 阴会天,下上一会的雨~提醒我们时刻记得带伞哦,不然会被雨淋...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作