当前位置: 首页 > news >正文

山东城市建设学院网站宁波免费seo在线优化

山东城市建设学院网站,宁波免费seo在线优化,个体户核名查询系统,淘宝客自建网站做还是用微信qq做今天我们在进行一个Python数据可视化的实战练习,用到的模块叫做Panel,我们通过调用此模块来绘制动态可交互的图表以及数据大屏的制作。 而本地需要用到的数据集,可在kaggle上面获取 https://www.kaggle.com/datasets/rtatman/188-million-us…

今天我们在进行一个Python数据可视化的实战练习,用到的模块叫做Panel,我们通过调用此模块来绘制动态可交互的图表以及数据大屏的制作。

而本地需要用到的数据集,可在kaggle上面获取 https://www.kaggle.com/datasets/rtatman/188-million-us-wildfires,如果无法访问kaggle,可以找我获取数据集。

导入模块和读取数据

那么首先我们先导入后面会用到的模块,代码如下

# 数据库  
import sqlite3  
# 数据处理  
import numpy as np  
import pandas as pd  
# 数据大屏  
import holoviews as hv   
import colorcet as cc  
import panel as pn  
from holoviews.element.tiles import EsriImagery  
from datashader.utils import lnglat_to_meters  
import hvplot.pandas  
hv.extension('bokeh')  

技术交流

技术要学会分享、交流,不建议闭门造车。一个人走的很快、一堆人可以走的更远。

好的技术文章离不开粉丝的分享、推荐,资料干货、资料分享、数据、ChatGPT 技术交流提升,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

方式①、添加微信号:pythoner666,备注:来自CSDN +备注来意
方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

那么这回的数据集的背景我们这里简单的做个介绍,是涉及到1992年到2015年美国境内发生的森林火灾的分布情况,那么这里就有涉及到火灾发生的位置,也就是经纬度坐标,由于数据集是放在sqlite数据库当中,因此数据集的导入也会用到Python当中的sqlite3这个模块

# 连接数据库  
conn = sqlite3.connect('./FPA_FOD_20170508.sqlite')  
# 读取出我们需要的字段下面的数据  
df = pd.read_sql_query("SELECT LATITUDE, LONGITUDE, STAT_CAUSE_DESCR, FIRE_SIZE, FIRE_SIZE_CLASS, DISCOVERY_DATE, CONT_DATE, STATE, FIRE_YEAR FROM fires", conn)  
# 删除掉阿拉斯加等其他地方的数据  
df = df.loc[(df.loc[:,'STATE']!='AK') & (df.loc[:,'STATE']!='HI') & (df.loc[:,'STATE']!='PR')]  
# 计算大火燃烧的时间  
df['BURN_TIME'] = df['CONT_DATE'] - df['DISCOVERY_DATE']  
df.head()  

output
在这里插入图片描述

绘制地图

接下来我们来绘制一下全美各个地区发生火灾的次数,将历年发生的火灾都做一个汇总,代码如下

map_tiles = EsriImagery().opts(alpha=0.5, width=700, height=480, bgcolor='black')  
plot = df.hvplot(  'LONGITUDE',   'LATITUDE',   geo=True,  kind='points',   rasterize=True,   cmap=cc.fire,   cnorm='eq_hist',    colorbar=True).opts(colorbar_position='bottom', xlabel='', ylabel='')  
map_tiles * plot  

output

那么涉及到绘制地图,这里就需要依赖其他的模块了,例如ShapelyCartopy以及Pillow等模块,安装起来会稍显复杂,大家可以上网去查阅一下具体的步骤,那么从上面的图表中我们可以看到加州以及佛罗里达州等地发生火灾的次数较多,颜色也就比较深。

要是我们要是想要给图表添加一个时间轴,通过拖拽时间轴来不断调整图表当中数据的变化,就可以这么来做,代码如下

# 绘制时间轴  
year = pn.widgets.IntSlider(name='Year Slider', width=300,  start=1992, end=2015, value=(1993),  step=1,value_throttled=(1993))  
# 显示出选中的时间  
def year_selected(year):  return '### Wildfires Across the US in {}'.format(year)  
# 绘制地图  
def plot_map(year_1):  year_df = df[df['FIRE_YEAR'] == year_1].copy()  plot = year_df.hvplot(  'LONGITUDE',   'LATITUDE',   geo=True,  kind='points',   rasterize=True,   cmap=cc.fire,   cnorm='eq_hist',    colorbar=True).opts(colorbar_position='bottom', xlabel='', ylabel='')  return map_tiles * plot  

我们将自定义的函数结合到一起来使用,代码如下

dashboard = pn.WidgetBox(  pn.Column(  pn.Row(pn.bind(year_selected, year), year),  pn.Row(pn.bind(plot_map, year)), align="start",  sizing_mode="stretch_width"))  
dashboard  

output

绘制柱状图

接下来我们来绘制几张简单的柱状图,首先是对不同的火灾等级进行分组统计并且绘制成柱状图,代码如下

def plot_class(year):  year_df = df[df['FIRE_YEAR'] == year].copy()  count_df = pd.DataFrame(year_df.groupby('FIRE_SIZE_CLASS').size(), columns=['Count'])  count_df['Fire Class'] = count_df.index  return count_df.hvplot.bar(x='Fire Class', y='Count', c='Fire Class', cmap='fire',   legend=False).opts(xlabel="Fire Size Class", ylabel="Number of Fires",  title="发生在{}的森林火灾,根据不同级别来区分".format(year))  
plot_class(2006)  

output

当然我们也可以绘制将柱状图绘制成是水平方向的,例如我们想要探究一下不同原因造成的火灾的持续的时间有多长,代码如下

def plot_cause_duration(year):  year_df = df[df['FIRE_YEAR'] == year].copy()  caused_df = pd.DataFrame(year_df.groupby('STAT_CAUSE_DESCR')[['BURN_TIME']].mean().sort_values('BURN_TIME'))  caused_df['Cause'] = caused_df.index  return caused_df.hvplot.barh(x='Cause', y='BURN_TIME',   c='Cause', cmap='fire_r', legend=False).opts(  ylabel="Duration (Days)",  title="发生在{}年由不同原因造成的森林火灾".format(year))  
plot_cause_duration(2010)  

output

以及我们想要看一下不同原因所造成的火灾的数量,代码如下

def plot_cause_occur(year):  year_df = df[df['FIRE_YEAR'] == year].copy()  caused_df = pd.DataFrame(year_df.groupby('STAT_CAUSE_DESCR').size(), columns=['Count']).sort_values('Count')  caused_df['Cause'] = caused_df.index  return caused_df.hvplot.barh(x='Cause', y='Count',   c='Cause', cmap='fire_r',   legend=False).opts(ylabel="Occurrence",  title="发生在{}年由不同原因造成的森林火灾".format(year))  
plot_cause_occur(2010)  

output

可视化大屏的制作

最后我们将上面绘制出来的图标拼凑到一起,做成可视化大屏,代码如下

plots_box = pn.WidgetBox(pn.Column(pn.Row(pn.bind(year_selected, year), year),  pn.Row(pn.bind(plot_map, year), pn.bind(plot_class, year)) ,  pn.Row(pn.bind(plot_cause_occur, year), pn.bind(plot_cause_duration, year)), align="start",  width=800, sizing_mode="stretch_width"))  
dashboard = pn.Row(plots_box, sizing_mode="stretch_width")  
dashboard  

output

http://www.15wanjia.com/news/164188.html

相关文章:

  • 建设银行培训网站如何做一个公司的网站
  • 行业门户网站运营学网站建设培训机构
  • 建设一个网站多少钱呢建设机械网站方案设计
  • 管局审核网站名称网站seo需要用到哪些工具
  • 网页设计跟网站建设主流数据网站
  • 网站怎么做直播功能吗网站开发与设计前景
  • 十大免费音乐网站服装设计师网
  • 做网站新手流程住房城乡建设部招投标网站
  • 网站改完域名打开速度慢电商网站模板引擎
  • 做网站策划需要什么技能软件工程考研科目
  • 超市建网站响应式网站高度如何计算
  • WordPress不关站备案插件Wordpress 插件购买
  • 贵阳网站seo外包360推广开户
  • 网站导航二级菜单怎么做出来的建设官方网站企业登录
  • 深圳市住房和建设局网站怎么打不开了网站制作开发技术
  • 咸阳企业做网站国际外贸网站推广
  • 张家港网站设计有吗网络培训网站开发文献综述
  • 现在一般做网站都是去哪家做的上海公司注册代理公司
  • 网站错误模板广东seo推广哪里好
  • 北京网站假设国内搜索网站
  • 怎么看网站的备案信息哈尔滨网站建设方案开发
  • 网站切图大图html5期末大作业个人网站制作
  • 汉中网络推广阿里巴巴网站优化
  • 青岛建网站哪个好网站建设与管理案例教程ppt
  • 广州商城网站建设公司做渔具最大的外贸网站
  • 网站开发怎么学习wordpress后台地址
  • 毕业设计做网站论文任县网站制作
  • 做引流网站怎么赚钱赚谁的钱app推广策划书模板
  • 如何推荐别人做网站什么叫seo网站推广
  • 我的个人网站 的网页设计wordpress 禁止修订版本