數據統計與可視化的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)# 將列表轉換為DataFramedf = 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)# 將列表轉換為DataFramedf = 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.pswp.cn/news/39393.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39393.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39393.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

移動端網頁中的前端視頻技術探索

引言 隨著移動設備的普及和網絡速度的提升,移動端網頁中的視頻播放已經成為了越來越重要的功能需求。本篇博客將介紹一些在移動端網頁中實現前端視頻播放的技術探索,并提供詳細的代碼示例。 1. 基本視頻標簽 在移動端網頁中實現視頻播放最基本的方法就…

【C++學習手札】一文帶你初識運算符重載

食用指南:本文在有C基礎的情況下食用更佳 🍀本文前置知識: C類 ??今日夜電波:クリームソーダとシャンデリア—Edo_Ame江戶糖 1:20 ━━━━━━?💟──────── 3:40 …

ID3 決策樹

西瓜數據集D如下: 編號色澤根蒂敲聲紋理臍部觸感好瓜1青綠蜷縮濁響清晰凹陷硬滑是2烏黑蜷縮沉悶清晰凹陷硬滑是3烏黑蜷縮濁響清晰凹陷硬滑是4青綠蜷縮沉悶清晰凹陷硬滑是5淺白蜷縮濁響清晰凹陷硬滑是6青綠稍蜷濁響清晰稍凹軟粘是7烏黑稍蜷濁響稍糊稍凹軟粘是8烏黑稍蜷濁響清晰…

idea cannot download sources 解決方法

問題 點擊class文件右上角下載源碼失敗 解決方案 找到idea terminal 控制臺cd 至maven工程執行 mvn dependency:resolve -Dclassifiersources

【IMX6ULL驅動開發學習】04.應用程序和驅動程序數據傳輸和交互的4種方式:非阻塞、阻塞、POLL、異步通知

一、數據傳輸 1.1 APP和驅動 APP和驅動之間的數據訪問是不能通過直接訪問對方的內存地址來操作的,這里涉及Linux系統中的MMU(內存管理單元)。在驅動程序中通過這兩個函數來獲得APP和傳給APP數據: copy_to_usercopy_from_user …

24屆近3年上海電力大學自動化考研院校分析

今天給大家帶來的是上海電力大學控制考研分析 滿滿干貨~還不快快點贊收藏 一、上海電力大學 學校簡介 上海電力大學(Shanghai University of Electric Power),位于上海市,是中央與上海市共建、以上海市管理為主的全日…

stack 、 queue的語法使用及底層實現以及deque的介紹【C++】

文章目錄 stack的使用queue的使用適配器queue的模擬實現stack的模擬實現deque stack的使用 stack是一種容器適配器&#xff0c;具有后進先出&#xff0c;只能從容器的一端進行元素的插入與提取操作 #include <iostream> #include <vector> #include <stack&g…

Layui列表復選框根據條件禁用

// 禁用客服回訪id有值的復選框res.data.forEach(function (item, i) {if (item.feedbackEmpId) {let index res.data[i][LAY_TABLE_INDEX];$(".layui-table tr[data-index"index"] input[typecheckbox]").prop(disabled,true);$(".layui-table tr[d…

【WebRTC---源碼篇】(二十四)GCC獲取碼率后的分配

RtpTransportControllerSend::PostUpdates 配置碼率 // Contains updates of network controller comand state. Using optionals to // indicate whether a member has been updated. The array of probe clusters // should be used to send out probes if not empty. // 包…

【SpringBoot】89、SpringBoot中使用@Transactional進行事務管理

事務是一組組合成邏輯工作單元的操作,雖然系統中可能會出錯,但事務將控制和維護事務中每個操作的一致性和完整性。 1、SpringBoot 引用說明 新建的 Spring Boot 項目中,一般都會引用 spring-boot-starter 或者 spring-boot-starter-web,而這兩個起步依賴中都已經包含了對…

EV 錄屏修復小工具

參考這篇文章, EV錄制文件損壞-修復方法, 我用 C# 寫了一個小程序. 倉庫: github.com/SlimeNull/EvRepair 下載: github.com/SlimeNull/EvRepair/Releases 鏡像: gitee.com/slimenull/EvRepair/releases 覺得還不錯的話, 點個星星 推薦使用的幾個理由: 內嵌 ffmpeg 和 recov…

Linux學習之初識Linux

目錄 一.Linux的發展歷史及概念 1.什么是Linux UNIX發展的歷史&#xff1a; Linux發展歷史&#xff1a; 2. 開源 商業化發行版本 二. 如何搭建Linux環境 Linux 環境的搭建方式主要有三種&#xff1a; 1. 直接安裝在物理機上 2. 使用虛擬機軟件 3. 使用云服務器 三. …

沒學C++,如何從C語言絲滑過度到python【python基礎萬字詳解】

大家好&#xff0c;我是紀寧。 文章將從C語言出發&#xff0c;深入介紹python的基礎知識&#xff0c;也包括很多python的新增知識點詳解。 文章目錄 1.python的輸入輸出&#xff0c;重新認識 hello world&#xff0c;重回那個激情燃燒的歲月1.1 輸出函數print的規則1.2 輸入函…

idea 使用debug 啟動項目的時候 出現 Method breakpoints may dramatically slow down debugging

問題: 1. 寫了一段時間的代碼&#xff0c;在debug啟動項目后提示&#xff1a;Method breakpoints may dramatically slow down debugging 但是正常啟動是可以的&#xff0c;debug不行。 2. idea 里面的項目&#xff0c;很多地方都有斷點&#xff0c;現在想要取消全部的斷點…

Redis——hash類型詳解

概述 Redis本身就是鍵值對結構&#xff0c;而Redis中的value可以是哈希類型&#xff0c;為了區分這兩個鍵值對&#xff0c;Redis中的鍵值對是key-value&#xff0c;而value中的哈希鍵值對則是field-value&#xff0c;其中value必須是字符串 下面介紹一些Redis的hash類型的常用…

Vue中拖動排序功能,引入SortableJs,前端拖動排序。

背景&#xff1a; 作為一名前端開發人員&#xff0c;在工作中難免會遇到拖拽功能&#xff0c;分享一個github上一個不錯的拖拽js庫&#xff0c;能滿足我們在項目開發中的需要&#xff0c;支持Vue和React&#xff0c;下面是我在vue后臺項目中中使用SortableJS的使用詳細流程&am…

html實現iphone同款開關

一、背景 想實現一個開關的按鈕&#xff0c;來觸發一些操作&#xff0c;網上找了總感覺看著別扭&#xff0c;忽然想到iphone的開關挺好&#xff0c;搞一個 二、代碼實現 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&qu…

HDFS原理剖析

一、概述 HDFS是Hadoop的分布式文件系統&#xff08;Hadoop Distributed File System&#xff09;&#xff0c;實現大規模數據可靠的分布式讀寫。HDFS針對的使用場景是數據讀寫具有“一次寫&#xff0c;多次讀”的特征&#xff0c;而數據“寫”操作是順序寫&#xff0c;也就是…

STM32 LL庫+STM32CubeMX--LED呼吸燈

一、前期準備 硬件&#xff1a;STM32F103C8T6開發板調試工具&#xff1a;DAPLink(本次使用)或USB-TTL開發環境&#xff1a;STM32CubeMX、Keil、Vscode(可選)LED&#xff1a;使用PA0(TIM2_CH1)輸出PWM&#xff0c;LED的陰極接GND 二、使用定時器中斷產生PWM STM32F103C8T6在72…

scope,deep穿透的實際應用

一.父組件代碼 <template><div id"app"><h1 class"box"><pageName> </pageName></h1></div> </template><script> import pageName from "../src/components/pageName.vue"; export de…