参考链接: 使用Python Pandas进行数据分析和可视化

Python 天气情况数据分析及可视化

环境配置

Pycharm开发环境

python 版本 python3.7

Anconda 集成开发环境

第三方库导入

## pip install 模块 清华大学镜像源

import requests

from bs4 import  BeautifulSoup

import io

import sys

import pandas

from matplotlib import pyplot as plt

步骤

1.爬虫requests 获取数据

2.pandas 处理数据

3.matplotlib 绘制图形

4.其他 保存数据进入csv格式,简单处理,例如雷达图

小案例

雷达图

#-*- codeing = utf-8 -*-

#@Time : 2020/6/2 20:07

#@Author : dele

#@File : demo.py

#@Software: PyCharm

# 雷达图

import pygal

# pip install pygal 安装模块

rader_chart = pygal.Radar()

rader_chart.title = '成绩分析'

rader_chart.x_labels = ["数学","英语","文综","理综","体育"]

rader_chart.add('StdudetA',[139,122,80,250,10])

rader_chart.add('StdudetB',[129,100,80,250,40])

rader_chart.add('StdudetC',[150,100,80,150,60])

rader_chart.add('StdudetD',[99,140,80,150,90])

rader_chart.render_to_file('radar_chart.svg')

效果

天气案例

爬取天气网站地址http://www.tianqihoubao.com/lishi/

然后一直选择找到你需要的数据地址

例如:如图

进行网页分析 F12检查网页分析源代码

Python 爬虫代码分析

Pandas matplotlib 模块

Pandas

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

基本功能

1. 数据文件读取/文本数据读取

2. 索引、选取和数据过滤

3. 算法运算和数据对齐

4. 函数的应用和映射

5. 重置索引

6. 数学统计方法

matplotlib

Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形 。 通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

Matplotlib基础知识

1.Matplotlib中的基本图表包括的元素

x轴和y轴

水平和垂直的轴线

x轴和y轴刻度

刻度标示坐标轴的分隔,包括最小刻度和最大刻度

x轴和y轴刻度标签

表示特定坐标轴的值

绘图区域

实际绘图的区域

2.hold属性

hold属性默认为True,允许在一幅图中绘制多个曲线;将hold属性修改为False,每一个plot都会覆盖前面的plot。

但是不推荐去动hold这个属性,这种做法(会有警告)。因此使用默认设置即可。

3.网格线

grid方法

使用grid方法为图添加网格线

设置grid参数(参数与plot函数相同)

.lw代表linewidth,线的粗细

.alpha表示线的明暗程度

4.axis方法

如果axis方法没有任何参数,则返回当前坐标轴的上下限

5.xlim方法和ylim方法

除了plt.axis方法,还可以通过xlim,ylim方法设置坐标轴范围

6.legend方法

#-*- codeing = utf-8 -*-

#@Time : 2020/6/2 20:26

#@Author : dele

#@File : weather.py

#@Software: PyCharm

import requests

from bs4 import  BeautifulSoup

import io

import sys

import pandas

sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')

def get_data(weather_url):

rseponse = requests.get(weather_url)

html = rseponse.content.decode('gbk')

soup = BeautifulSoup(html,'html.parser')

tr_lsit = soup.find_all('tr')

print(tr_lsit)

dates,conditions,temp = [],[],[]

for data in tr_lsit[1:]:

sub_data = data.text.split()

dates.append(sub_data[0])

conditions.append(''.join(sub_data[1:3]))

temp.append(''.join(sub_data[3:6]))

# 数据保存

_data = pandas.DataFrame()

_data['日期'] = dates

_data['天气情况'] = conditions

_data['气温'] = temp

return _data

# print(_data)

# _data.to_csv('anqing.csv',index=False,encoding='gbk')

# 获取数据并保存csv格式,进行下面的数据分析

# 定义成函数形式进行封装

data_month_3 =get_data('http://www.tianqihoubao.com/lishi/anqing/month/202003.html')

data_month_4 =get_data('http://www.tianqihoubao.com/lishi/anqing/month/202004.html')

data_month_5 =get_data('http://www.tianqihoubao.com/lishi/anqing/month/202005.html')

data = pandas.concat([data_month_3,data_month_4,data_month_5]).reset_index(drop=True)

data.to_csv('anqing.csv',index=False,encoding='gbk')

数据可视化

from matplotlib import pyplot as plt

# 画图

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.rcParams['axes.unicode_minus'] = False

datalsit = pandas.read_csv('G:/Python_Web/weather/anqing.csv',encoding='gbk')

# 数据处理

datalsit['最高气温'] = datalsit['气温'].str.split('/',expand=True)[0]

datalsit['最低气温'] = datalsit['气温'].str.split('/',expand=True)[1]

datalsit['最高气温'] = datalsit['最高气温'].map(lambda x:int(x.replace('℃','')))

datalsit['最低气温'] = datalsit['最低气温'].map(lambda x:int(x.replace('℃','')))

dates = datalsit['日期']

highs = datalsit['最高气温']

lows =  datalsit['最低气温']

# 画图

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

plt.plot(dates,highs,c='red',alpha=0.5)

plt.plot(dates,lows,c='blue',alpha=0.5)

plt.fill_between(dates,highs,lows,facecolor='blue',alpha=0.2)

# 图表格式

# 设置图标的图形格式

plt.title('2020安庆市3-5月天气情况',fontsize=24)

plt.xlabel('',fontsize=6)

fig.autofmt_xdate()

plt.ylabel('气温',fontsize=12)

plt.tick_params(axis='both',which='major',labelsize=10)

# 修改刻度

plt.xticks(dates[::20])

# 显示

plt.show()

效果

完整代码

#-*- codeing = utf-8 -*-

#@Time : 2020/6/2 20:26

#@Author : dele

#@File : weather.py

#@Software: PyCharm

import requests

from bs4 import  BeautifulSoup

import io

import sys

import pandas

from matplotlib import pyplot as plt

sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')

def get_data(weather_url):

rseponse = requests.get(weather_url)

html = rseponse.content.decode('gbk')

soup = BeautifulSoup(html,'html.parser')

tr_lsit = soup.find_all('tr')

print(tr_lsit)

dates,conditions,temp = [],[],[]

for data in tr_lsit[1:]:

sub_data = data.text.split()

dates.append(sub_data[0])

conditions.append(''.join(sub_data[1:3]))

temp.append(''.join(sub_data[3:6]))

# 数据保存

_data = pandas.DataFrame()

_data['日期'] = dates

_data['天气情况'] = conditions

_data['气温'] = temp

return _data

# print(_data)

# _data.to_csv('anqing.csv',index=False,encoding='gbk')

# data_month_3 =get_data('http://www.tianqihoubao.com/lishi/anqing/month/202003.html')

# data_month_4 =get_data('http://www.tianqihoubao.com/lishi/anqing/month/202004.html')

# data_month_5 =get_data('http://www.tianqihoubao.com/lishi/anqing/month/202005.html')

#

# data = pandas.concat([data_month_3,data_month_4,data_month_5]).reset_index(drop=True)

# data.to_csv('anqing.csv',index=False,encoding='gbk')

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.rcParams['axes.unicode_minus'] = False

datalsit = pandas.read_csv('G:/Python_Web/weather/anqing.csv',encoding='gbk')

# 数据处理

datalsit['最高气温'] = datalsit['气温'].str.split('/',expand=True)[0]

datalsit['最低气温'] = datalsit['气温'].str.split('/',expand=True)[1]

datalsit['最高气温'] = datalsit['最高气温'].map(lambda x:int(x.replace('℃','')))

datalsit['最低气温'] = datalsit['最低气温'].map(lambda x:int(x.replace('℃','')))

dates = datalsit['日期']

highs = datalsit['最高气温']

lows =  datalsit['最低气温']

# 画图

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

plt.plot(dates,highs,c='red',alpha=0.5)

plt.plot(dates,lows,c='blue',alpha=0.5)

plt.fill_between(dates,highs,lows,facecolor='blue',alpha=0.2)

# 图表格式

# 设置图标的图形格式

plt.title('2020安庆市3-5月天气情况',fontsize=24)

plt.xlabel('',fontsize=6)

fig.autofmt_xdate()

plt.ylabel('气温',fontsize=12)

plt.tick_params(axis='both',which='major',labelsize=10)

# 修改刻度

plt.xticks(dates[::20])

# 显示

plt.show()

博客地址https://www.delehub.top/

[转载] Python 天气 简单 数据分析及可视化相关推荐

  1. python画图横轴刻度间隔设置为3个月_Python 天气情况数据分析及可视化

    Python 天气情况数据分析及可视化 环境配置 Pycharm开发环境 python 版本 python3.7 Anconda 集成开发环境 第三方库导入 ## pip install 模块 清华大 ...

  2. Python爬虫、数据分析、可视化学习笔记(一、梦开始的地方)

    系列文章持续更新中...... 文章目录 一.工具及环境配置 1.Python3.8(官网下载) 2.Pycharm(官网下载) 3.Anaconda(官网下载) 4.环境配置(传送门,感谢前人栽树) ...

  3. b站《双城之战》主题曲《孤勇者》视频评论爬取+简单数据分析+基本可视化(条形图,饼图,词云图)

    双城之战更新啦!!!!!<孤勇者>也在b站上线了!!!! <孤勇者> 是真的好听!!!!没听的快给我去听:<双城之战>也是真的好看,没看到快给我去看!!!! 今天我 ...

  4. Python实现股票数据分析的可视化

    Python实现股票数据分析的可视化 文章目录 Python实现股票数据分析的可视化 一.简介 二.代码 1.主文件 2.数据库使用文件 3.ui设计模块 4.数据处理模块 三.数据样例的展示 四.效 ...

  5. python办公自动化excel_超简单:用Python让Excel飞起来 王秀文 等 零基础 python 办公自动化 Excel 数据分析 数据可视化 9787111659761...

    前言如何获取学习资源*1章 Python快速上手1.1为什么要学习用Python控制Excel 131.2Python编程环境的搭建 131.2.1安装Python官方的编程环境IDLE 131.2. ...

  6. 利用python进行保险数据分析及可视化

    前言 现在数据分析在各个行业都在广泛的使用,尤其由于python语言的简便.高效性,在一些中小型企业的实际应用中逐渐替代excel公式.透视图等传统方式.网上各种博客论坛这类文章很多,但保险行业的数据 ...

  7. Python + Vue + D3 数据分析及可视化项目分享

    2022/11/10 声明 (这篇文章居然被下架了-) 这个项目只是以 GTD 数据库为例做数据的统计及可视化,不涉及对任何具体事件的分析和评论,希望能恢复发表! 前言 这个项目是BIT软件工程专业数 ...

  8. Python实现房产数据分析与可视化 数据分析 实战

    Python库的选择 话说,工欲善其事,必先利其器,虽然我们已经选择Python来完成剩余的工作,但是我们需要考虑具体选择使用Pytho的哪些利器来帮助我们更快更好地完成剩余的工作. 我们可以看一下, ...

  9. python分析保险销售数据_利用python进行保险数据分析及可视化

    前言 现在数据分析在各个行业都在广泛的使用,尤其由于python语言的简便.高效性,在一些中小型企业的实际应用中逐渐替代excel公式.透视图等传统方式.网上各种博客论坛这类文章很多,但保险行业的数据 ...

最新文章

  1. 【C++】容器与继承
  2. vuecli项目文件命名_vue.js学习笔记(一)——vue-cli项目的目录结构
  3. 12.流水线设计方式
  4. linux看网络电影,Linux中看电影、听音乐
  5. nanshan 钥匙在您那儿的
  6. har文件解析工具_嵌入式MCU也能跑AI?STM32 Cube.AI工具包使用初探
  7. 我的YUV播放器MFC小笔记:右键菜单事件和非标题实现鼠标拖动
  8. request.setAttribute()与getParameter() 的区别
  9. 《JAVA并发编程的艺术》之 Java并发编程实战
  10. 软件测试 _ 基础知识
  11. 计算机硬盘与格式化,什么是磁盘格式化 格式化与快速格式化区别 - 驱动管家...
  12. 台式计算机读不到u盘怎么回事,u盘读不出来怎么办?Win7电脑无法识别设备如何解决?...
  13. 《大数据时代》读书笔记——知道“是什么”就够了,没必要知道“为什么”。我们不必非得知道现象背后的原因,而是要让数据自己“发声”
  14. uni-app前端开发(零)
  15. Python 使用摄像头监测心率!这么强吗?
  16. 教你如何快速提取视频中的音频
  17. 鱼眼相机图像畸变校正
  18. Firefox使用技巧
  19. 猎杀对决计算机丢失进不去,猎杀对决代码错误怎么解决 无法进入游戏解决方法...
  20. Mac的Dock栏是什么?Mac Dock栏使用技巧

热门文章

  1. 分段式多级离心泵_溧阳耐磨矿用多级泵水泵厂
  2. vc ado连接mysql_VC用Ado接口连接和使用数据库及注意事项
  3. JSP→Javabean简介设计原则、JSP动作、Javabean三个动作、Javabean四个作用域范围、Model1简介弊端、JSP状态管理、include动作指令、forword动作、param
  4. JAVA集合Collection与泛型<T>→List、ArrayList、LinkedList、→Set、HashSet、hashCode()→Map、HashMap、→Properties
  5. hdu 3333 Turing Tree 求区间内不同数的和——线段树解法
  6. [leetcode]5. 最长回文子串
  7. bzoj 1691: [Usaco2007 Dec]挑剔的美食家(multiset贪心)
  8. Wiener维纳滤波基本原理及其算法实现
  9. C++ STL 各种搜索查找算法总结使用
  10. 吴恩达神经网络和深度学习-学习笔记-27-多任务学习