# coding=gbk
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import base64
from io import BytesIO,StringIO
df = pd.read_csv('t_pm25.csv',encoding='utf-8')
#全省总览图
def chart_province():
pd.DataFrame(df.groupby('city').AQI.mean().sort_values(ascending=False).tail(17)).plot.barh(figsize=(10, 6))
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文标签
plt.rcParams['axes.unicode_minus'] = False
plt.title('全省空气质量总览')
plt.xlabel('AQI')
plt.ylabel('城市名')
plt.xlim(50, 150)
plt.legend('AQI')
plt.grid(linestyle=':', color='w')
buffer = BytesIO()
plt.savefig(buffer)
plot_data = buffer.getvalue()
imb = base64.b64encode(plot_data)
ims = imb.decode()
imd = "data:image/png;base64," + ims
plt.clf()
return imd
#全省污染物热点图
def chart_province_pollute():
# 全省主要污染物信息
df_top10_polluted = []
df_top10_polluted = pd.DataFrame(df_top10_polluted)
for _ in range(0, 10):
# 提取空气质量最严重的城市信息
temp = df[df['city'] == df.groupby('city').AQI.mean().sort_values().tail(10).index[_]]
df_top10_polluted = pd.concat([df_top10_polluted, temp])
df_overpolluted = df_top10_polluted[df_top10_polluted['AQI'] >= 100][
['AQI', 'PM2_5', 'PM10', 'SO2', 'NO2', 'CO', 'O3']]
plt.figure(figsize=(9.5, 6))
sns.heatmap(df_overpolluted.corr(), vmax=1, square=False, annot=True, linewidth=1)
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文标签
plt.rcParams['axes.unicode_minus'] = False
plt.yticks(rotation=0);
plt.title('全省主要污染热点图')
buffer = BytesIO()
plt.savefig(buffer)
plot_data = buffer.getvalue()
imb = base64.b64encode(plot_data)
ims = imb.decode()
imd = "data:image/png;base64," + ims
plt.clf()
return imd
#全省不同时间段空气质量情况
def chart_province_time():
pd.DataFrame(df.groupby('time_slot').AQI.mean().sort_values()).plot.line(figsize=(9.5, 6))
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文标签
plt.rcParams['axes.unicode_minus'] = False
plt.title('全省不同时间段空气质量情况')
plt.xlabel('时间')
plt.ylabel('AQI')
# plt.xlim(70)
plt.legend('AQI')
plt.grid(linestyle=':', color='w')
buffer = BytesIO()
plt.savefig(buffer)
plot_data = buffer.getvalue()
imb = base64.b64encode(plot_data)
ims = imb.decode()
imd = "data:image/png;base64," + ims
plt.clf()
return imd
#当前城市的不同时间段空气质量情况
def chart_current_time():
df_gd = df[df['place'] == '济南市(总)']
pd.DataFrame(df_gd.groupby('time_slot').AQI.mean().sort_values()).plot.line(figsize=(9.5, 6))
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.title('济南不同时间段空气质量情况')
plt.xlabel('时间段')
plt.ylabel('AQI')
plt.legend('AQI')
plt.grid(linestyle=':', color='w')
buffer = BytesIO()
plt.savefig(buffer)
plot_data = buffer.getvalue()
imb = base64.b64encode(plot_data)
ims = imb.decode()
imd = "data:image/png;base64," + ims
plt.clf()
return imd
#获取所有城市名
def get_city():
data = df.drop_duplicates(subset=['city'],keep='first')['city']
data = data.astype(str)
return data
#获取所有地区名
def get_place():
data = df.drop_duplicates(subset=['place'],keep='first')['place']
data = data.astype(str)
return data
#当前城市的数据
def data_current():
df['time'] = pd.to_datetime(df['time'])
df_gd = df[df['place'] == '济南市(总)']
data = df_gd[df['time'].dt.hour.isin(np.arange(12, 13))]
data = data.astype(str)
return data
'''
#当前城市的数据
def data_city():
df['city'] = df['city'].astype('string')
data = df.groupby('city').AQI.mean()
data = data.astype(str)
return data
'''
#某个城市的不同地区空气质量情况
def chart_city(city):
df_gd = df[df['city'] == city]
pd.DataFrame(df_gd.groupby('place').AQI.mean().sort_values()).plot.barh(figsize=(9.5, 6))
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文标签
plt.rcParams['axes.unicode_minus'] = False
plt.title(city + '不同地区空气质量情况')
plt.xlabel('AQI')
plt.ylabel('地区')
#plt.xlim(80)
plt.legend('AQI')
plt.grid(linestyle=':', color='w')
buffer = BytesIO()
plt.savefig(buffer)
plot_data = buffer.getvalue()
imb = base64.b64encode(plot_data)
ims = imb.decode()
imd = "data:image/png;base64," + ims
plt.clf()
return imd
#某个城市的空气质量次数图
def chart_city_frequency(city):
df_gd = df[df['city'] == city]
df_gd.groupby('空气质量').time.count().plot.bar(figsize=(9.5, 6))
plt.xticks(rotation=0)
plt.ylabel('次数')
plt.title(city + '空气质量次数图')
buffer = BytesIO()
plt.savefig(buffer)
plot_data = buffer.getvalue()
imb = base64.b64encode(plot_data)
ims = imb.decode()
imd = "data:image/png;base64," + ims
plt.clf()
return imd
#某个城市的主要污染图
def chart_city_pollutePM2_5(city):
df_sz = df[df['city'] == city]
df_sz_pollutant = df_sz[df_sz['AQI'] >= 100][['AQI', 'PM2_5', 'PM10', 'SO2', 'NO2', 'CO', 'O3']]
sns.regplot(x='PM2_5', y='AQI', data=df_sz_pollutant);
plt.title(city + '主要污染物')
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文标签
plt.rcParams['axes.unicode_minus'] = False
buffer = BytesIO()
plt.savefig(buffer)
plot_data = buffer.getvalue()
imb = base64.b64encode(plot_data)
ims = imb.decode()
imd = "data:image/png;base64," + ims
plt.clf()
return imd
#某个城市的主要污染图
def chart_city_pollutePM10(city):
df_sz = df[df['city'] == city]
df_sz_pollutant = df_sz[df_sz['AQI'] >= 100][['AQI', 'PM2_5', 'PM10', 'SO2', 'NO2', 'CO', 'O3']]
sns.regplot(x='PM10', y='AQI', data=df_sz_pollutant);
plt.title(city + '主要污染物')
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文标签
plt.rcParams['axes.unicode_minus'] = False
buffer = BytesIO()
plt.savefig(buffer)
plot_data = buffer.getvalue()
imb = base64.b64encode(plot_data)
ims = imb.decode()
imd = "data:image/png;base64," + ims
plt.clf()
return imd
#某城市污染物热点图
def chart_city_pollute(city):
# 全省主要污染物信息
df_gd = df[df['city'] == city]
df_gd_pollutant = df_gd[df_gd['AQI'] >= 100][['AQI', 'PM2_5', 'PM10', 'SO2', 'NO2', 'CO', 'O3']]
plt.figure(figsize=(9.5, 6))
sns.heatmap(df_gd_pollutant.corr(), vmax=1, square=False, annot=True, linewidth=1)
plt.yticks(rotation=0);
plt.title(city + '主要污染物热点图')
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文标签
plt.rcParams['axes.unicode_minus'] = False
buffer = BytesIO()
plt.savefig(buffer)
plot_data = buffer.getvalue()
imb = base64.b64encode(plot_data)
ims = imb.decode()
imd = "data:image/png;base64," + ims
plt.clf()
return imd
#某个城市不同时间段空气质量情况
def chart_city_time(city):
df_gd = df[df['city'] == city]
pd.DataFrame(df_gd.groupby('time_slot').AQI.mean().sort_values()).plot.line(figsize=(9.5, 6))
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文标签
plt.rcParams['axes.unicode_minus'] = False
plt.title(city+'不同时间段空气质量情况')
plt.xlabel('时间段')
plt.ylabel('AQI')
plt.legend('AQI')
plt.grid(linestyle=':', color='w')
buffer = BytesIO()
plt.savefig(buffer)
plot_data = buffer.getvalue()
imb = base64.b64encode(plot_data)
ims = imb.decode()
imd = "data:image/png;base64," + ims
plt.clf()
return imd
#某个地区的空气质量次数图
def chart_place_frequency(place):
df_gd = df[df['place'] == place]
df_gd.groupby('空气质量').time.count().plot.barh(figsize=(9.5, 6))
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文标签
plt.rcParams['axes.unicode_minus'] = False
plt.xticks(rotation=0)
plt.ylabel('次数')
没有合适的资源?快使用搜索试试~ 我知道了~
基于Python实现空气监测及预测系统源码.zip
共260个文件
scss:164个
js:23个
pyc:15个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 5 下载量 56 浏览量
2023-05-26
11:44:43
上传
评论 7
收藏 6.98MB ZIP 举报
温馨提示
基于Python实现空气监测及预测系统源码.zip 空气质量监测及预测系统 使用技术: Python、Django、pandas、numpy、LSTM 简要说明: 从pm25.csv中读取数据,使用pandas做数据处理,使用LSTM进行空气质量预测。
资源推荐
资源详情
资源评论
收起资源包目录
基于Python实现空气监测及预测系统源码.zip (260个子文件)
material-dashboard.css 418KB
material-dashboard.min.css 332KB
material-dashboard-rtl.css 27KB
demo.css 1KB
t_pm25.csv 12.13MB
pm25.csv 6.47MB
.gitignore 47B
current.html 6KB
analysis.html 6KB
provinces.html 5KB
cities_result.html 5KB
places_result.html 5KB
places_search.html 5KB
cities_search.html 5KB
forecast.html 4KB
mainProject.iml 435B
city-profile.jpg 454KB
cover.jpg 338KB
bg2.jpg 273KB
city.jpg 208KB
sidebar-3.jpg 113KB
sidebar-4.jpg 104KB
sidebar-1.jpg 101KB
avatar.jpg 83KB
card-profile1-square.jpg 73KB
sidebar-2.jpg 61KB
marc.jpg 53KB
card-profile2-square.jpg 47KB
jquery.dataTables.min.js 2.08MB
jquery-jvectormap.js 248KB
fullcalendar.min.js 209KB
jquery.min.js 142KB
sweetalert2.js 120KB
bootstrap-selectpicker.js 97KB
bootstrap-material-design.min.js 75KB
moment.min.js 57KB
bootstrap-datetimepicker.min.js 39KB
chartist.min.js 39KB
popper.min.js 33KB
perfect-scrollbar.jquery.min.js 25KB
bootstrap-tagsinput.js 22KB
jquery.tagsinput.js 22KB
nouislider.min.js 21KB
jquery.validate.min.js 21KB
material-dashboard.js 19KB
jasny-bootstrap.min.js 16KB
bootstrap-notify.js 14KB
jquery.bootstrap-wizard.js 13KB
material-dashboard.min.js 10KB
demo.js 6KB
arrive.min.js 5KB
material-dashboard.css.map 919KB
material-dashboard.js.map 11KB
说明.md 236B
new_logo.png 5KB
favicon.png 3KB
apple-icon.png 2KB
mask.png 756B
draw.py 11KB
dataProcess.py 7KB
forecast.py 4KB
settings.py 3KB
views.py 2KB
urls.py 1KB
manage.py 543B
wsgi.py 399B
apps.py 91B
admin.py 63B
tests.py 60B
models.py 57B
__init__.py 0B
__init__.py 0B
__init__.py 0B
draw.cpython-37.pyc 10KB
forecast.cpython-37.pyc 3KB
settings.cpython-37.pyc 2KB
views.cpython-37.pyc 2KB
settings.cpython-37.pyc 2KB
urls.cpython-37.pyc 1KB
urls.cpython-37.pyc 1KB
wsgi.cpython-37.pyc 556B
wsgi.cpython-37.pyc 544B
admin.cpython-37.pyc 183B
models.cpython-37.pyc 180B
__init__.cpython-37.pyc 153B
__init__.cpython-37.pyc 145B
__init__.cpython-37.pyc 142B
__init__.cpython-37.pyc 133B
_variables.scss 35KB
_colors-map.scss 22KB
_responsive.scss 18KB
_cards.scss 14KB
_reboot.scss 11KB
_forms.scss 11KB
_sidebar-and-main-panel.scss 11KB
_colors.scss 9KB
_forms.scss 9KB
_buttons.scss 9KB
_chartist.scss 9KB
_forms.scss 9KB
共 260 条
- 1
- 2
- 3
资源评论
- L22860033082023-12-26可以说说这个怎么部署嘛
- qq_408962202024-04-23资源内容详尽,对我有使用价值,谢谢资源主的分享。
- 2301_792493292023-10-17这个资源对我启发很大,受益匪浅,学到了很多,谢谢分享~
- m0_672595982023-07-09感谢大佬,让我及时解决了当下的问题,解燃眉之急,必须支持!z同学的编程之路2023-09-14感谢认可,加油
- Vetrue2023-06-06内容与描述一致,超赞的资源,值得借鉴的内容很多,支持!z同学的编程之路2023-09-14嗯嗯,对您有用就好,感谢支持!
z同学的编程之路
- 粉丝: 2501
- 资源: 2135
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功