推广 热搜: 音视频  使用  page  选择  搜索引擎  百度  企业  可以  个数  父亲 

【Dash搭建可视化网站】项目10:疫情数据可视化大屏制作步骤详解

   日期:2025-01-03     作者:hubinusb    caijiyuan   评论:0    移动:http://ww.kub2b.com/mobile/news/19972.html
核心提示:手动反爬虫:原博地址 https://blog.csdn.net/lys_828/article/details/128605640主框架就是app.py项目初始化文件和index.

手动反爬虫:原博地址 https://blog.csdn.net/lys_828/article/details/128605640

 
 
 
 
 
 
 
 
 

主框架就是app.py项目初始化文件和index.py主程序运行文件,其中app.py文件中的信息较为简单,就是创建一个dash的应用,代码如下

 

index.py文件中引入初始化后的应用,然后进行布局及运行初始化设置。

 
 
 
 

项目的头部信息包含了三个部分,可以按照一行三列的布局设置,第一列放置图片居左,第二列放置标题居中,第三列放置更新时间居右。

 

其中图片的加载和位置设置,以及标题文字的大小及距离的设置相对简单,最主要解决第三列更新时间的问题,首先给定一个今天的时间作为样例,后续根据接口数据获取的具体时间再更换,在api.ipynb文件中将时间转化为目标样式的代码如下。

 
 

将上述代码复制粘贴到api.py文件中并通过语句导入到header.py文件,完善此文件的信息,代码如下。

 
 
 
 

通过观察最终的图片样式,卡片数据部分的内容基本布局一致,包含了上中下三个部分,第一部分就是文字说明统计类型,中间为该类型的数据,最下面是增加数量和百分比。可封装一个函数,保留数据接口,设置参数为,四个参数,先用简单示例数据进行赋值,设置完毕后,再处理数据。

 

接着完善该文件,此时全部代码如下。

其中api.py文件是为提供数据接口,api.iypnb文件方便进行数据处理和调式工作。前面已经用来处理更新的时间格式,这里就针对真实的Covid数据进行数据导入。此项目使用的数据来自于约翰霍普金斯大学系统科学与工程中心(JHU CSSE)运营的2019年新型冠状病毒可视化仪表盘的数据存储库,数据来源网址:COVID-19

3.5.1 数据获取

Covid数据中的确诊、死亡、治愈信息所在网址

 

使用pandas可以直接读取网址链接中的数据,但是前提是用户可以正常访问github。如果无法正常访问Github网址,后续会把读取到的数据保存到本地,并放置在assets文件夹下新建的data文件夹下, 读者可以在下载项目案例后使用本地csv文件读取数据。读取数据的代码如下

 
 
 

考虑进一步提取有治愈数据的信息,首先确定何时该数据库不再统计此部分数据。此处判断的方式就是对每个数值字段进行求和汇总,如果连续5个字段的汇总值都是0,说明连续5个字段中的第一个字段就是数据库停止更新的日期。

 
 
 
 

可以把数据保存到本地assets文件夹下的data文件夹中,由于没有data文件夹,需要先创建,可以手动在assets文件夹中创建,也可以使用代码进行创建,并把数据保存到此文件夹中,代码如下及输出结果如下。

 
 

3.5.2 数据处理

重新读取本地文件数据(当然也可以直接使用获取的数据。由于已经在data文件生成了数据文件,所以在api.py文件中就不需要再重新获取数据,直接读入数据就行,此处的重新读取本地文件数据就是为了方便把代码直接复制粘贴到api.py文件中

 
 

为了保证同一性,把三个数据进行合并,最终的数据量以死亡和确诊数据量为准,把治愈数据合并进来,最终形成完整数据。

 
 
 
 
 
 
 
 

3.5.3 接口数据导入header.py和cards.py文件中使用

在api.ipynb文件中核实无误后,把代码转移到api.py文件中,此时api.py文件中的代码如下。

 

然后将api.py中的数据导入到cards.py文件和header.py文件中,进行数据替换。首先更换header.py文件中的数据更新时间,为简化header.py文件内容,数据处理工作在api.py文件中完成后再传入,保证后续使用时候只需要修改数据接口文件,而不用动其它文件。在api.py文件中添加如下代码获取数据最近的更新时间。

 

然后把导入到header.py文件中,顺带修改一下文件中样式,使之和最终效果的布局一致。

 
 
 
 
 
 
 
 
 
 
 
 
 

以中国为例,数据更新之日的新增确诊数据和较昨日新增的确诊数据获取方式如下。

 
 
 

此时indicators.py文件中的代码如下。

 
 
 
 
  • 对于indictors图形容器和后面回调的Output的内容存在了重复,可以考虑列表推导式简化
  • 然后对于颜色参数可以添加到字体和数值中
  • 图像的高度也需要调整
 
 
 

此文件功能就是对Dropdown组件选中的标签,进行疫情四项指标的占比输出。主要的问题在于获取各项指标数据,由于各指标名称和字段名称是相同的,所以还是使用列表推导式的方式进行简化代码。构建pie图核心参数一个是,还有一个,这两参数都与四个指标相关,最终的代码如下。

 
 
 

该文件的功能是按照Dropdown组件选取的标签,绘制对应国家/地区的最近30天的疫情确诊数据,以及近七天的平滑数据曲线。首先在api.ipynb文件中获取最近30天的疫情确诊数据,以中国为例。

 
 
 
 

现在关键点落到地理信息的匹配上,获取的数据中虽然有国家/区域信息,但是和方法绘制地图时需要的地理数据不一致,因此需要将目前手上的数据通过某一特定标识进行转化。

 
 
 
 
 

setting.py文件中的全部代码如下。(其中只有两个属性是项目9中没有的属性,div_container属性控制四部分的整体布局,card_container属性用于控制组件的样式

本文地址:http://ww.kub2b.com/news/19972.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新文章
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新文章
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号