数据统计与可视化的Dash应用程序

在数据分析和可视化领域,Dash是一个强大的工具,它结合了Python中的数据处理库(如pandas)和交互式可视化库(如Plotly)以及Web应用程序开发框架。本文将介绍如何使用Dash创建一个简单的数据统计和可视化应用程序,从Microsoft Access数据库中获取数据并在Web界面上展示。C:\pythoncode\new\dashboard.py
在这里插入图片描述

在这里插入图片描述

首先,我们需要使用pyodbc库连接到Microsoft Access数据库。在示例代码中,我们连接到名为"database1.accdb"的数据库文件。你需要根据自己的情况修改连接字符串和数据库文件路径。

以下是连接到数据库的代码示例:

import pyodbc

# 连接到数据库
conn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=./database1.accdb')

接下来,我们定义了一个查询函数(query_data),该函数执行一条SQL查询语句,计算了文章阅读量、评论数、关注数和收藏数的总和。查询结果被转换为一个DataFrame对象,方便后续处理和展示。

以下是查询函数的代码示例:

import pandas as pd

# 定义查询函数
def query_data():
    # 创建游标
    cursor = conn.cursor()

    # 执行查询
    cursor.execute("SELECT SUM(阅读量) AS 阅读量总数, SUM(评论数) AS 评论数总数, SUM(关注数) AS 关注数总数, SUM(收藏数) AS 收藏数总数 FROM articles")
    data = cursor.fetchone()

    # 将查询结果转换为列表
    data_list = list(data)

    # 将列表转换为DataFrame
    df = pd.DataFrame([data_list], columns=['阅读量总数', '评论数总数', '关注数总数', '收藏数总数'])

    return df

使用Dash库创建应用程序的过程非常简单。我们创建一个Dash应用程序实例,并设置应用程序的布局。在示例代码中,我们创建了一个包含标题和数据表格的Div容器。数据表格使用HTML的table元素进行展示,包括表头和表体,显示了查询结果。

以下是创建应用程序布局的代码示例:

from dash import Dash, dcc, html

# 创建Dash应用程序
app = Dash(__name__)

# 创建布局
app.layout = html.Div(
    children=[
        html.H1(children='数据统计'),
        html.Table(
            children=[
                html.Thead(
                    html.Tr(
                        [html.Th('指标'), html.Th('数量')]
                    )
                ),
                html.Tbody(
                    [
                        html.Tr(
                            [html.Td('阅读量'), html.Td(df['阅读量总数'])]
                        ),
                        html.Tr(
                            [html.Td('评论数'), html.Td(df['评论数总数'])]
                        ),
                        html.Tr(
                            [html.Td('关注数'), html.Td(df['关注数总数'])]
                        ),
                        html.Tr(
                            [html.Td('收藏数'), html.Td(df['收藏数总数'])]
                        )
                    ]
                )
            ]
        )
    ]
)

最后,我们运行应用程序,通过调用app.run_server(debug=True)启动Web服务器,将应用程序部署到本地。你可以在浏览器中访问指定的URL,即可看到展示查询结果的网页。

以下是运行应用程序的代码示例:

# 运行应用程序
if __name__ == '__main__':
    app.run_server(debug=True)

通过这个简单的示例,你可以根据自己的需求扩展应用程序。你可以添加更多的查询函数和数据处理逻辑,创建更复杂的可视化图表,并将其与Dash的其他组件结合使用,以实现更丰富的数据分析和可视化功能。
全部代码

import pyodbc
import pandas as pd
from dash import Dash
from dash import dcc
from dash import html
import plotly.graph_objs as go

# 连接到数据库
conn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=./database1.accdb')

# 定义查询函数
def query_data():
    # 创建游标
    cursor = conn.cursor()

    # 执行查询
    cursor.execute("SELECT SUM(阅读量) AS 阅读量总数, SUM(评论数) AS 评论数总数, SUM(关注数) AS 关注数总数, SUM(收藏数) AS 收藏数总数 FROM articles")
    data = cursor.fetchone()

    # 将查询结果转换为列表
    data_list = list(data)

    # 将列表转换为DataFrame
    df = pd.DataFrame([data_list], columns=['阅读量总数', '评论数总数', '关注数总数', '收藏数总数'])

    return df

# 查询数据
df = query_data()

# 创建Dash应用程序
app = Dash(__name__)

# 创建布局
app.layout = html.Div(
    children=[
        html.H1(children='数据统计'),
        html.Table(
            children=[
                html.Thead(
                    html.Tr(
                        [html.Th('指标'), html.Th('数量')]
                    )
                ),
                html.Tbody(
                    [
                        html.Tr(
                            [html.Td('阅读量'), html.Td(df['阅读量总数'])]
                        ),
                        html.Tr(
                            [html.Td('评论数'), html.Td(df['评论数总数'])]
                        ),
                        html.Tr(
                            [html.Td('关注数'), html.Td(df['关注数总数'])]
                        ),
                        html.Tr(
                            [html.Td('收藏数'), html.Td(df['收藏数总数'])]
                        )
                    ]
                )
            ]
        )
    ]
)

# 运行应用程序
if __name__ == '__main__':
    app.run_server(debug=True)

# 关闭数据库连接
conn.close()

Dash提供了丰富的文档和示例,可以帮助你更深入地了解和使用该库。你可以访问Dash官方网站(https://dash.plotly.com/ ↗)查看更多资料和示例代码。

总结起来,Dash是一个强大的工具,可以帮助你快速创建数据统计和可视化的Web应用程序。通过使用Dash,你可以轻松地从各种数据源获取数据,并将其以交互式和可视化的方式展示出来。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FPGA应用学习笔记-----复位电路(二)和小结

不可复位触发器若和可复位触发器混合写的话,不可复位触发器是由可复位触发器馈电的。 不应该出现的复位,因为延时导致了冒险,异步复位存在静态冒险 附加素隐含项,利用数电方法,消除静态冒险 这样多时钟区域还是算异步的…

MYSQL作业二

首先,查询数据库并是选择一个数据库打开 show table; use sys 第二部,创建一个表格 CREATE TABLE employee ( 部门号 int(11) not null, 职工号 int(11) not null, 工作时间 date not null, 工资 float(8,2) not null, 政治面貌 varchar(20) not…

一个完美的自动化测试框架应该怎么写?

一、什么是自动化测试框架? 自动化测试框架是为自动化测试用例或者脚本提供执行环境而搭建的基础设施。自动化测试框架有助于有效地开发、执行和报告自动化测试用例。 优点: 代码复用 提高测试效率 更高的测试覆盖率 维护成本低 更早发现和记…

Spring对象装配

在spring中,Bean的执行流程为启动spring容器,实例化bean,将bean注册到spring容器中,将bean装配到需要的类中。 既然我们需要将bea装配到需要的类中,那么如何实现呢?这篇文章,将来阐述一下如何实…

windows以管理员的身份运行CMD

电脑在装系统的时候,我的用户不是最高权限的管理员。 今天在工作的时候,使用CMD。运行失败,提示我需要使用管理员的身份运行CMD才可以。 使用右键点击左下角的windows图标 选择红框标注的那项。 以普通身份运行: 以管理员身份运行…

HTML5的介绍和基本框架

目录 HTML5 HTML5介绍 HTML5的DOCTYPE声明 HTML5基本骨架 html标签 head标签 body标签 title标签 meta标签 在vscode中写出第一个小框架 HTML5 HTML5介绍 HTML5是用来描述网页的一种语言,被称为超文本标记语言。用HTML5编写的文件,后缀以.ht…

24届近3年上海电力大学自动化考研院校分析

今天给大家带来的是上海电力大学控制考研分析 满满干货~还不快快点赞收藏 一、上海电力大学 学校简介 上海电力大学(Shanghai University of Electric Power),位于上海市,是中央与上海市共建、以上海市管理为主的全日…

【vue】简洁优雅的火花线、趋势线

来由 在github发现个好看易用的vue趋势线组件,特此记录。 效果 趋势图生成后效果如上,线条为渐变色,可设置是否平滑。具体线条走势,根据数据动态生成。 使用 安装 npm i vuetrend -S 引入 import Vue from "vue"…

无涯教程-Perl - sprintf函数

描述 此函数使用FORMAT基于LIST中的值返回格式化的字符串。本质上与printf相同,但是返回格式化的字符串而不是将其打印。 语法 以下是此函数的简单语法- sprintf FORMAT, LIST返回值 此函数返回SCALAR(格式化的文本字符串)。 例 以下是显示其基本用法的示例代码- #!/us…

重要日期提醒软件是哪个?帮你记住重要日程的提醒软件

生活、工作、学习中有众多重要的日期,如生日、纪念日、会议、截止日期等,它们承载着我们珍贵的回忆和重要的任务,因此绝对不能忘记。然而在信息爆炸的时代,我们的生活和工作节奏都是非常快的,时常会忘记这些重要的日程…

CentOS 7 下 Keepalived + Nginx 实现双机高可用

CentOS 7 下 Keepalived Nginx 实现双机高可用 文章目录 CentOS 7 下 Keepalived Nginx 实现双机高可用服务器准备服务信息服务架构 服务安装nginxKeepalived 服务配置nginxKeepalived 启动服务nginxkeepalived 服务验证查看 VIP 状态CURL 命令访问浏览器访问 高可用验证停止…

ZDH-wemock模块

本次介绍基于版本v5.1.1 目录 项目源码 预览地址 安装包下载地址 wemock模块 wemock模块前端 配置首页 配置mock wemock服务 下载地址 打包 运行 效果展示 项目源码 zdh_web: https://github.com/zhaoyachao/zdh_web zdh_mock: https://github.com/zhaoyachao/z…

了解51单片机

目录 51单片机名字的由来 主要功能 1.控制处理 2.数据处理 3.通信 4.定时计数 51单片机的组成 1.中央处理器CPU 2.存储器RAM、只读存储器ROM 3.I/O口和中断系统 4.显示驱动电路、A/D转换器 5.定时器/计数器、脉宽调制电路、模拟多路转换器等电路 单片机的应用领域(…

论文阅读:《Waymo Public Road Safety Performance Data》

文章目录 1 背景2 方法2.1 数据来源2.2 碰撞数据 3 碰撞事件分析4 讨论 1 背景 这篇文章是讲waymo道路安全性能数据分析的,主要想表达的是waymo自动驾驶系统在安全上面的出色表现,以向政府、大众提高自己产品的公信力。 这篇文章分析的数据是自从2019年到…

Field injection is not recommended

文章目录 1. 引言2. 不推荐使用Autowired的原因3. Spring提供了三种主要的依赖注入方式3.1. 构造函数注入(Constructor Injection)3.2. Setter方法注入(Setter Injection)3.3. 字段注入(Field Injection) 4…

日志采集分析ELK

这里的 ELK其实对应三种不同组件 1.ElasticSearch:基于Java,一个开源的分布式搜索引擎。 2.LogStash:基于Java,开源的用于收集,分析和存储日志的工具。(它和Beats有重叠的功能,Beats出现之后&a…

【单片机】DS2431,STM32,EEPROM读取与写入

芯片介绍: https://qq742971636.blog.csdn.net/article/details/132164189 接线 串口结果: 部分代码: #include "sys.h" #include "DS2431.h"unsigned char serialNb[8]; unsigned char write_data[128]; unsigned cha…

Failed to resolve component: v-data-table“. vue3 + vuefity 使用 v-data-table 报错解决

在使用 vue3 vuetify 开发项目的过程中用到了 v-data-table 组件,结果在使用的过程中发现加载失败控制台报错。 [Vue warn]: Failed to resolve component: VDataTable解决方案: import { VDataTable } from vuetify/labs/VDataTable参考文档: https:…

【密码学】维京密码

维京密码 瑞典罗特布鲁纳巨石上的图案看起来毫无意义,但是它确实是一种维京密码。如果我们注意到每组图案中长笔画和短笔画的数量,将得到一组数字2、4、2、3、3、5、2、3、3、6、3、5。组合配对得到24、23、35、23、36、35。现在考虑如图1.4所示的内容&a…

ssm社区文化宣传网站源码和论文

ssm社区文化宣传网站源码和论文019 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 研究或设计的目的和意义: (一)研究目的: 通过本次课题能够将所学的Java编程知识以及Mysql数据库知…