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

news2024/11/25 7:57:23

在数据分析和可视化领域,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,你可以轻松地从各种数据源获取数据,并将其以交互式和可视化的方式展示出来。

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

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

相关文章

SpringBoot复习:(44)MyBatisAutoConfiguration

可以看到MyBatisAutoConfiguration引入了MyBatisProperties这个属性: MyBatisAutoConfiguration中配置了一个SqlSessionFactoryBean,代码如下: 可以配置mybatis-config.xml,需要配置文件里指定: mybatis.config-locationclasspath:/mybat…

ImportError: cannot import name ‘MutableMapping‘ from ‘collections‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

【FreeRtos基础入门】任务状态

文章目录 前言一、任务状态1.阻塞状态(Blocked)2.暂停状态(Suspended)3.就绪状态(Ready) 总结 前言 本freertos使用stm32系列单片机,使用其他的也可以,如esp系列等… 任务管理是实时操作系统(RTOS)的核心功能之一,它…

VMware Workstation中安装了Windows7系统但是VMware Tools选项为灰色及无法安装的解决方法

一、问题描述 当我们在使用VMware Workstation安装好了Windows7系统后;该安装好的Windows7系统并不能自动适配WMware的界面,只能在中间显示很小的一部分内容;此时我们就需要给Windows7系统安装VMware Tools工具; 问题一:WMware中的【安装VMware Tools】选项则是灰色的无法…

最强自动化测试框架Playwright(21)-测试生成器inspector

测试生成器 运行该命令时,将打开两个窗口,一个浏览器窗口,可以在其中与要测试的网站进行交互,另一个是Playwright Inspector窗口,可以在其中记录测试,然后将其复制到编辑器中。 使用该命令运行测试生成器…

7.9 SpringBoot实战 拷贝工具类,扩展BeanUtils.copyProperties

文章目录 前言一、拷贝普通对象Bean1.1 基础的Bean拷贝1.2 支持忽略某些属性1.3 支持忽略字段值为null的属性1.4 通用的Bean拷贝1.4.1 拷贝时可指定忽略属性1.4.2 拷贝时外加忽略null属性 二、拷贝集合对象List2.1 拷贝时可指定忽略属性2.2 拷贝时外加忽略null属性 三、拷贝分页…

HOT92-最小路径和

leetcode原题链接:最小路径和 题目描述 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入:…

基础堆排序(Java 实例代码)

目录 基础堆排序 一、概念及其介绍 二、适用说明 三、过程图示 四、Java 实例代码 src/runoob/heap/Heapify.java 文件代码: 基础堆排序 一、概念及其介绍 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。 堆是一个近…

① vue复习。从安装到使用

vue官网:cn.vuejs.org vue安装 cnpm install -g vue/cli 查看是否安装成功 vue --version 创建一个项目 vue create vue-demo(项目名称) 这个取消掉。空格可选中或者取消。 运行项目: cd 进入到项目下 npm run serve 运行成功后,访问这…

面对算力瓶颈,如何利用CPU解决全链路智能编码?

编者按:英特尔是半导体行业和计算创新领域的全球领先厂商。与合作伙伴一起,英特尔推动了人工智能、5G、智能边缘等转折性技术的创新和应用突破,驱动智能互联世界。不久前,英特尔正式发布了第四代英特尔至强可扩展处理器&#xff0…

计算机网络-物理层(二)- 传输方式

计算机网络-物理层(二)- 传输方式 串型传输与并行传输 串行传输:是指数据是一个比特一个比特依次发送的,因此在发送端和接收端之间,只需要一条数据传输线路即可 并行传输:是指一次发送n个比特而不是一个比特,因此发送…

前端架构师的能力要求:打造可靠、灵活和可扩展的Web应用

随着互联网技术迅猛发展,现代Web应用程序变得越来越复杂且功能强大。作为一名前端架构师,在这个快节奏且竞争激烈的环境中,你需要具备广泛而深入地技术知识,并且有能力设计、开发和维护高度可靠、灵活和可扩展性强的Web应用。 深入…

popen/pclose 函数

函数作用 如果说system在一定程度上是execl的优化版,那么popen就一定程度上是system的优化版,使用popen不仅可以运行代码,还可以获取运行的输出结果(但是system和exec族函数还是非常重要的,也有自己的特定应用场景&am…

从0开始搭建ns3环境以及NetAnim简单使用

一、环境准备 ns3是基于GNU/Linux平台使用C开发的工具软件,在windows系统中安装使用ns3环境,可以使用虚拟机VMware并安装ubuntu系统来实现,现将本教程所用到的虚拟机和系统镜像放到网盘提供下载 名称链接提取码VMware Workstation 17 Proht…

Docker镜像查看下载删除镜像文件的相关命令

1.镜像相关命令 本地查看有哪些镜像文件: docker images镜像的名称就是我们常见的一些软件,镜像相当于把软件和软件所需要的运行环境打包到一个镜像文件里面,将来在通过这个镜像文件创建出对应的容器,容器有了以后这些软件自动的…

system函数

函数作用 执行一个shell的命令 其实通过查看system函数的源码就会发现,system函数调用后会进行一次fork,然后就会在子进程中运行“execl("/bin/sh", "sh", "-c", command, (char *) 0);” 而“sh -c XXX” 这个命令&…

IC设计仿真云架构

对于IC仿真来说,最重要的是要安全、可维护、高性能的的HPC环境环境。 那么云上如何搭建起一套完整的IC仿真云环境呢? 这种架构应该长什么样子? 桌面虚拟化基础架构 将所有桌面虚拟机在数据中心进行托管并统一管理;同时用户能够…

学习笔记整理-JS-04-流程控制语句

文章目录 一、条件语句1. if语句的基本使用2. if else if多条件分支3. if语句算法题4. switch语句5. 三元运算符 二、循环语句1. for循环语句2. for循环算法题3. while循环语句4. break和continue5. do while语句 三、初识算法1. 什么是算法2. 累加器和累乘器3. 穷举法4. 综合算…

python根据已有列计算其他列

根据已有列计算其他列 1、根据已有列新增列2、根据已有列修改其他列 读取数据源 import pandas as pd # 读取智能大师号码信息 path1 r../excelFile-j/flower.csv df_data pd.read_csv(path1) # df_data 内容1、根据已有列新增列 方式一:根据单列 df_data["…

Python遥感开发之分段读取和保存遥感数据

Python遥感开发之分段读取和保存遥感数据 1 分段读取数据2 实现分批读取数据以及进行计算3 实现分批保存成TIF文件(所有完整代码)4 分段TIF整合到一个TIF5 生成一个空白TIF(每个像元值为0的TIF) 前言:当遇到批量读取大…