【Dash搭建可视化网站】项目14:美国机场交通数据可视化看板制作步骤详解

news2024/11/20 2:45:57

美国机场交通数据可视化看板制作步骤详解

  • 1 项目效果图
  • 2 项目架构
  • 3 文件介绍和功能完善
    • 3.1 assets文件夹介绍
    • 3.2 app.py和index.py文件完善
    • 3.3 sider.py文件完善
    • 3.4 mapchart.py文件完善
    • 3.5 barchart.py文件完善
    • 3.6 api.py和api.ipynb文件完善
  • 4 样式修改
    • 4.1 整体样式修改
    • 4.2 sider.py文件样式修改
    • 4.3 mapchart.py文件样式修改
    • 4.4 barchart.py文件样式修改

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

 知识梳理不易,请尊重劳动成果,文章仅发布在CSDN网站上,在其他网站看到该博文均属于未经作者授权的恶意爬取信息

1 项目效果图

整个项目的页面包含三部分,由上中下三栏构成。项目已上传至 个人Github仓库 。
在这里插入图片描述

2 项目架构

项目中各文件名称与对应功能见下表 。
在这里插入图片描述

3 文件介绍和功能完善

3.1 assets文件夹介绍

assets文件夹中就是加载的样式和图片,样式这里可以使用之前已经下载好的bootstrap.min.css样式(也可以按照 项目6.2bootstrap组件 中的介绍下载其它的样式模板).

3.2 app.py和index.py文件完善

主框架就是app.py项目初始化文件和index.py主程序运行文件,其中app.py文件中的信息较为简单,就是创建一个dash的应用,代码如下。
在这里插入图片描述
ndex.py文件中引入初始化后的应用,然后进行布局及运行初始化设置。布局的主体是上中下三个部分,分别对应sider.py、barchart.py和mapchart.py文件中的三个函数,具体代码如下。

from dash import html
from app import app
import dash_bootstrap_components as dbc

from sider import SiderInfo
from mapchart import MapchartInfo
from barchart import BarchartInfo

app.layout = html.Div(
    dbc.Row(
        [
            dbc.Col([SiderInfo()]),
            dbc.Col([MapchartInfo(),BarchartInfo()]),
        ]
    )
) 

if __name__ == '__main__':
    app.run_server(debug=True)

布局的三个文件中的内容初始化如下。(api.py和api.ipynb文件暂时没有内容)
在这里插入图片描述

3.3 sider.py文件完善

该文件中为一个提醒文字和下拉筛选组件。将左侧栏的布局宽度设置为3,右侧布局自然为9,此时sider.py文件中的全部代码如下。其中的数据是简单构造,后续读入数据文件后再更新。

from dash import html,dcc

def SiderInfo():
    return html.Div(
        [
            html.H3('Airport Traffic Data'),
            html.H6('Select State'),
            dcc.Dropdown(
                ['a','b','c'],
                'a',
                id='dpd'
            )
        ]
    )

保存修改后,运行index.py文件后,打开网址http://127.0.0.1:8050/,输出结果如下。
在这里插入图片描述

3.4 mapchart.py文件完善

该文件的功能是依据左侧的筛选内容绘制散点地图。之前已经绘制过,可以参照项目12中的px.scatter_mapbox()函数。绘制的前提需要获取地理信息相关的数据

from dash import html,dcc,Input,Output
from app import app
import plotly.express as px

def MapchartInfo():
    return html.Div(
        [
            dcc.Graph(id='map-chart')
        ]
    )

@app.callback(
    Output('map-chart','figure'),
    [Input('dpd','value')]
)
def update(value):
    fig=px.scatter_mapbox(lat=['45.5017'],lon=['-73.5673'])
    fig.update_layout(
        font = {'family':'sans-serif','color':'white','size':12},
        margin=dict(r=0, l =0, b = 0, t = 0),
        mapbox=dict(
                accesstoken='pk.eyJ1IjoicXM2MjcyNTI3IiwiYSI6ImNraGRuYTF1azAxZmIycWs0cDB1NmY1ZjYifQ.I1VJ3KjeM-S613FLv3mtkw',
                style='dark',
            ),
    )
    return fig

保存修改后,刷新网址,输出内容如下。
在这里插入图片描述

3.5 barchart.py文件完善

该文件的功能是按照左侧的筛选条件绘制各区域机场的交通数据。主要在于数据的获取,bar图的绘制之前的项目中已经使用过多次。该文件的全部代码如下。

from dash import html,dcc,Input,Output
from app import app
import plotly.express as px

def BarchartInfo():
    return html.Div(
        [
            dcc.Graph('bar-chart')
        ]
    )

@app.callback(
    Output('bar-chart','figure'),
    [Input('dpd','value')]
)
def update(value):
    fig=px.bar(x=[1,2,3],y=[2,3,4])
    return fig

保存修改后,刷新网址,输出内容如下。
在这里插入图片描述

3.6 api.py和api.ipynb文件完善

读入数据文件后,查看前五条数据。
在这里插入图片描述
构建左侧栏中的下拉菜单的标签选项,代码及输出结果如下。
在这里插入图片描述

然后获取地图和条状图中的数据。数据为各州机场的交通量,因此需要有州和机场数据,此外地图是散点地图需要经纬度信息,获取的代码及输出结果如下。
在这里插入图片描述
然后将以上的代码转移到api.py文件中,并导入到其它文件中使用,此时api.py文件中的全部代码如下。

import pandas as pd
import warnings
warnings.filterwarnings('ignore')


data=pd.read_csv('D:/Data Science/plotly学习/个人/【14. Airport traffic data】Dropdown-bar-map/data/2011_february_us_airport_traffic.csv')

#获取州标签的唯一值,并核实无缺失值None
state_ls = data['state'].unique()

#获取州和机场的交通量
state_airport_data = data.groupby(['state','airport','lat','long'])['cnt'].sum().reset_index()

#获取最多的机场所在的州
max_airport= state_airport_data ['state'].value_counts().index[0]

更新sider.py文件的内容如下。
在这里插入图片描述

更新mapchart.py的内容如下。
在这里插入图片描述
更新barchart.py文件内容如下。
在这里插入图片描述
保存修改后,刷新网址,输出内容如下。
在这里插入图片描述

4 样式修改

4.1 整体样式修改

在assets文件夹下新建一个setting.css文件,设置整体风格。主要是背景、边缘和字体颜色的设置。由于设置了全局扩展vh-100,如果有窗口抖动现象,添加最后一行代码。
在这里插入图片描述

4.2 sider.py文件样式修改

侧栏可以参考之前项目8:个人理财管理系统制作和项目9:智能选股器制作。首先将内容撑开到100%,然后添加一个侧边条,该文件的全部代码如下。

from dash import html,dcc

def SiderInfo():
    return html.Div(
        [
            html.H3('Airport Traffic Data',style={'paddingBottom':'50px'}),
            html.H6('Select State',style={'paddingBottom':'50px'}),
            dcc.Dropdown(
                ['a','b','c'],
                'a',
                id='dpd'
            )
        ]
    )

此时在index.py文件中添加侧栏设置的属性,如下。sider属性是自定义的属性,调整左右的宽度,使得内容在中间,距离两侧有一定的距离
在这里插入图片描述
保存修改后,刷新网址,输出内容如下。
在这里插入图片描述

4.3 mapchart.py文件样式修改

设置绘图的背景颜色即可,此文件中的修改代码如下。
在这里插入图片描述
保存修改后,刷新网址,输出内容如下。
在这里插入图片描述

对于下拉条的颜色还有组件的颜色,进行修改css样式,如下。

/* width */
::-webkit-scrollbar {
    width: 10px !important;
    display: block !important;
  }


/* Track */
::-webkit-scrollbar-track {
    background:  #262626 !important;
    border-radius: 10px !important;
    display: block !important;
    }
    
/* Handle */
::-webkit-scrollbar-thumb {
background: #262626 !important;
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
background:  #262626 !important;
}

#dpd * {
    background-color: #151516 !important;
    color: #f9fafa !important;
    font-size: 10px !important;
}


.Select-control{
    border: 1px solid #323844 !important;
}

.Select-menu-outer{
    overflow: hidden !important;
    border-color: #36425e !important;
}


.rc-slider * {
    color: #1d2a36 !important;
}

保存修改后,刷新网址,输出内容如下。
在这里插入图片描述

4.4 barchart.py文件样式修改

在这里插入图片描述
保存修改后,刷新网址,输出内容如下。

在这里插入图片描述
至此项目介绍完毕,撒花✿✿ヽ(°▽°)ノ✿。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/159455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

联合证券|A股汽车板块爆发,北向资金半日净买入43亿

今日上午,A股商场震动胶着,轿车、电力设备、通信、机械设备等板块领涨。房地产、美容护理、商贸零售等板块领跌。 北向资金再度成为商场重要亮点之一,半个交易日净买入约43亿元。至此,2023年1月以来,北向资金累计净买入…

Jmeter常用函数

1、生成随机数函数 ${__Random(m,n)},其中m,n参数是必填 2、 生成随机日期函数${__RandomDate(dateTimeFormat,from,end,locale,var)},其中end是必选的,代表最大的日期; 3、 随机生成字符串函数${__RandomString(length,chars,)}…

Linux---vim编辑器

目录 1. vim的基本概念 2. vim正常/命令模式命令集 3. vim底行模式命令集 1. vim的基本概念 vim是Linux下一款常用编辑器,vim的三种模式(其实有好多模式,主要掌握这3种即可),分别是命令模式(command mode)、插入模式&#xff0…

Synchronized锁原理及 ConcurrentHashMap

文章目录一、Synchronized原理加锁过程锁消除锁粗化二、线程安全的集合类多线程环境使用ArrayList多线程环境使用队列多线程环境下使用哈希表一、Synchronized原理 我们表面看到的,两个线程针对同一对象加锁,就会产生阻塞等待,但实际我们的S…

2023我的创作纪念日

文章目录机缘收获日常憧憬机缘 这个博客还是我上大一的时候注册的,在大一、大二、大三期间更多的是为了方便搜索,学校里边的习题大部分是可以在CSDN上找到的。真正写博客是在大三下学习实习,当时为了方便记录实习中遇到的问题。在C站对我影响…

【Git 从入门到精通】2023最新版的Git安装与卸载每一步附详细讲解

文章目录安装1.下载Git2.开始安装卸载1.找到电脑中的Git2.卸载3.删除环境变量安装 1.下载Git 首先去官网下载Git安装包,可以直接在百度搜索Git,以下几个网站都可以。也可以点击直达,官网上下载如果不科学上网的话还是很慢的,所以…

[Zombodb那些事]Zombodb与ElasticSearch的Bulk通信

Zombodb与ElasticSearch的Bulk通信0.前言Zombodb是一个PostgreSQL插件,使用rust编写,支持pg14以下版本。Zombodb可以允许PostgreSQL查询ElasticSearch中的内容。本篇为《Zombodb那些事》第一篇,后面将更新其他部分内容。Zombodb会在pg数据库上…

智能文字识别技术推动彝文识别弘扬中华文化

前言 谈起图像识别自己颇有感触,因为之前的两段工作经历都和图像识别密切相关;之前一家公司的主营业务就是将历史上珍贵文献进行数字化;上家公司自己负责图像识别模块相关的工作;不但使用了第三方平台产品而且进行了自建&#xff…

设计模式相关内容介绍—UML

统一建模语言(Unified ModelingLanguage,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 UML从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、…

经过2022年这大环境,我学会了如何管理我的领导

2022年这大环境,可以说是我干软件开发这些年来,经历的最残酷的一年,所以做为职场软件开发一员的我,不得不修炼一下真本事。 很多时候不是你不努力,不是你连mysql连的不溜,不是你布局页面布局的不精细&#…

16.Isaac教程--Codelets详解

Codelets详解 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 文章目录Codelets详解Codelets 和 tick接收消息传输消息方便的 ToProto/FromProto 函数配置参数应用程序 JSON子图姿态组件是机器人应用程序的基本构建块。 Isaac SDK 包含可在您的应…

「数据结构详解·九」图的初步

「数据结构详解一」树的初步「数据结构详解二」二叉树的初步「数据结构详解三」栈「数据结构详解四」队列「数据结构详解五」链表「数据结构详解六」哈希表「数据结构详解七」并查集的初步「数据结构详解八」带权并查集 & 扩展域并查集「数据结构详解九」图的初步 注意&…

基于JavaWEB SSM SpringBoot婚纱影楼摄影预约网站设计和实现

基于JavaWEB SSM SpringBoot婚纱影楼摄影预约网站设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末…

天宝营养冲刺深交所IPO:业绩明显波动,深创投是股东

撰稿|汤汤 来源|贝多财经 近日,贝多财经发现,天宝动物营养科技股份有限公司(下称“天宝营养”)递交预披露更新招股书,准备在深圳证券交易所主板上市,红塔证券为其独家保荐人。本次冲刺上市,天…

《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》中文分享(16)

​《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》 本人能力有限,如果错误欢迎批评指正。 第四章:Protein Binding Leads to Biological Actions (蛋白质的结合会产生生物作用) -在变构中,…

大神推荐,这几个电脑实用技巧,让你电脑用起来更加流畅舒服

电脑在我们的日常生活中,往往承担着“办公学习”的作用!所以我们应该掌握哪些常用、好用的电脑使用技巧呢?今天就给大家分享下,我日常在使用电脑过程中,经常会使用到的几个电脑使用技巧!第一:快…

基于FPGA的UDP 通信(三)

目录 引言 设计框图 UDP接收模块 设计源码 TEST BENCH 仿真结果 引言 前文链接: 基于FPGA的UDP 通信(一) 基于FPGA的UDP 通信(二) 本文基于FPGA设计千兆以太网通信模块:FPGA接收上位机数据。后续…

端到端的传输协议

(一)如何在一条物理链路上进行有效和可靠的数据传输 ——数据链路层传输协议 (1)标识高层送下来的数据块的起止、特定内容(例如校验比特)的位置 ——组帧技术 (2)如何发现传输中的错…

数据结构---线性表

刘佳瑜*,王越 *, 黄扬* , 张钊* (淮北师范大学计算机科学与技术学院,安徽 淮北) *These authors contributed to the work equllly and should be regarded as co-first authors. 🌞欢迎来到数据结构的世界 🌈博客主页&#xff1…

回溯法--最大团问题

问题描述什么是最大团?最大团的定义?完全图:如果无向图中的任何一对顶点之间都有一条边,这种无向图称为完全图。完全子图:给定无向图G(V,E)。如果U⊆V,且对任意u,v⊆U 有(u,v) ⊆ E&…