用Python寫一個可視化大屏

用Python打造可視化大屏:數據洞察新視界

?

在當今數據爆炸的時代,數據可視化成為了理解和傳達復雜信息的關鍵工具。Python作為一門強大且靈活的編程語言,提供了豐富的庫和工具,讓我們能夠創建出令人驚嘆的可視化大屏。本文將帶你逐步了解如何使用Python實現這一目標,無論是數據分析師、開發者還是對數據可視化感興趣的愛好者,都能從中找到實用的知識和技巧。

?

一、準備工作

?

在開始之前,確保你已經安裝了Python,并且配置好了開發環境。此外,我們還需要安裝一些關鍵的庫,這些庫將成為我們構建可視化大屏的得力助手。

?

安裝必要的庫

?

1.?Pyecharts:一個基于Echarts的Python可視化庫,它提供了豐富的圖表類型,如柱狀圖、折線圖、餅圖、地圖等,并且支持將多個圖表組合成一個完整的大屏。通過簡單的幾行代碼,就能生成漂亮且交互性強的圖表。安裝命令:?pip install pyecharts?。

2.?Flask:這是一個輕量級的Web應用框架,我們可以使用它來搭建一個簡單的Web服務器,將我們創建的可視化大屏展示在網頁上,方便在各種設備上查看。安裝命令:?pip install flask?。

3.?Pandas:用于數據處理和分析的核心庫,它提供了快速、靈活、明確的數據結構,旨在簡單、直觀地處理關系型、標記型數據。在準備數據階段,Pandas將幫助我們讀取、清洗和預處理數據。安裝命令:?pip install pandas?。

?

二、數據準備

?

數據是可視化的基礎,優質的數據才能生成有價值的可視化結果。數據來源可以是多種多樣的,比如CSV文件、Excel表格、數據庫(如MySQL、PostgreSQL等),甚至是從API接口獲取的數據。

?

示例:從CSV文件讀取數據

?

假設我們有一份銷售數據,存儲在名為?sales_data.csv?的文件中,包含日期、地區、銷售額等字段。我們可以使用Pandas庫來讀取這份數據:

?

import pandas as pd

?

# 讀取CSV文件

data = pd.read_csv('sales_data.csv')

# 查看數據的前幾行,了解數據結構

data.head()

?

?

通過上述代碼,我們將CSV文件中的數據讀取到了一個Pandas的DataFrame對象中,方便后續對數據進行處理和分析。

?

數據清洗與預處理

?

原始數據往往存在各種問題,如缺失值、重復值、異常值等,這些問題會影響可視化的準確性和效果,因此需要進行數據清洗和預處理。

?

1.?處理缺失值:可以使用?fillna()?方法填充缺失值,或者使用?dropna()?方法刪除含有缺失值的行或列。例如:

?

# 使用指定值填充缺失值

data.fillna(0, inplace=True)

# 刪除含有缺失值的行

data = data.dropna(axis=0)

?

?

2.?去除重復值:使用?drop_duplicates()?方法刪除重復的行。

?

data = data.drop_duplicates()

?

?

3.?處理異常值:可以通過設定合理的閾值,使用條件篩選的方式去除異常值。例如,假設銷售額不可能為負數,我們可以刪除銷售額為負數的記錄:

?

data = data[data['銷售額'] >= 0]

?

?

三、創建可視化圖表

?

使用Pyecharts庫,我們可以輕松創建各種類型的可視化圖表。下面以柱狀圖、餅圖和地圖為例,展示如何使用Pyecharts進行圖表繪制。

?

柱狀圖

?

柱狀圖常用于比較不同類別之間的數據大小。假設我們要展示不同地區的銷售額對比:

?

from pyecharts.charts import Bar

from pyecharts import options as opts

?

# 準備數據

regions = data['地區'].unique().tolist()

sales = [data[data['地區'] == region]['銷售額'].sum() for region in regions]

?

# 創建柱狀圖

bar = Bar()

bar.add_xaxis(regions)

bar.add_yaxis("銷售額", sales)

bar.set_global_opts(

? ? title_opts=opts.TitleOpts(title="各地區銷售額對比"),

? ? xaxis_opts=opts.AxisOpts(name="地區"),

? ? yaxis_opts=opts.AxisOpts(name="銷售額")

)

# 生成HTML文件,用于展示圖表

bar.render("regions_sales_bar.html")

?

?

餅圖

?

餅圖適用于展示各部分占總體的比例關系。例如,我們要展示不同商品類型的銷售額占比:

?

from pyecharts.charts import Pie

?

# 統計不同商品類型的銷售額

product_sales = data.groupby('商品類型')['銷售額'].sum().reset_index()

products = product_sales['商品類型'].tolist()

sales_amounts = product_sales['銷售額'].tolist()

?

# 創建餅圖

pie = Pie()

pie.add("", list(zip(products, sales_amounts)))

pie.set_global_opts(

? ? title_opts=opts.TitleOpts(title="不同商品類型銷售額占比"),

)

pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))

pie.render("product_sales_pie.html")

?

?

地圖

?

地圖可以直觀地展示數據在地理上的分布情況。假設我們的數據中包含地區的經緯度信息,我們要展示銷售額在地圖上的分布:

?

from pyecharts.charts import Map

?

# 準備地圖數據,假設數據中包含地區名稱和對應的銷售額

map_data = [(row['地區'], row['銷售額']) for index, row in data.iterrows()]

?

# 創建地圖

map_chart = Map()

map_chart.add("銷售額", map_data, maptype="china")

map_chart.set_global_opts(

? ? title_opts=opts.TitleOpts(title="銷售額地理分布"),

? ? visualmap_opts=opts.VisualMapOpts(max_=data['銷售額'].max())

)

map_chart.render("sales_map.html")

?

?

四、組合圖表構建可視化大屏

?

將多個單獨的圖表組合成一個可視化大屏,可以更全面地展示數據。我們使用Pyecharts的?Page?組件來實現這一目標。

?

from pyecharts.charts import Page

?

# 創建Page對象

page = Page(layout=Page.SimplePageLayout)

?

# 添加之前創建的圖表

page.add(bar, pie, map_chart)

?

# 生成包含所有圖表的HTML文件,即可視化大屏

page.render("sales_dashboard.html")

?

?

五、使用Flask展示可視化大屏

?

雖然我們已經生成了包含可視化大屏的HTML文件,但為了能夠在網絡環境中方便地訪問和展示,我們使用Flask框架搭建一個簡單的Web服務器。

?

1.?創建一個Flask應用文件,例如?app.py?:

?

from flask import Flask, render_template

?

app = Flask(__name__)

?

@app.route('/')

def index():

? ? return render_template('sales_dashboard.html')

?

if __name__ == '__main__':

? ? app.run(debug=True)

?

?

2.?將之前生成的?sales_dashboard.html?文件放置在Flask應用的?templates?文件夾中(如果沒有該文件夾,需要手動創建)。

3.?運行Flask應用:在命令行中執行?python app.py?,然后在瀏覽器中訪問?http://127.0.0.1:5000/?,即可看到我們創建的可視化大屏。

?

通過以上步驟,我們成功地使用Python創建了一個可視化大屏,將復雜的數據以直觀、美觀的方式展示出來。你可以根據實際需求,進一步優化和擴展這個大屏,例如添加更多的圖表類型、實現數據的實時更新、優化頁面布局等,讓你的數據可視化之旅更加精彩。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/909472.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/909472.shtml
英文地址,請注明出處:http://en.pswp.cn/news/909472.shtml

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

相關文章

20250611讓NanoPi NEO core開發板在Ubuntu core16.04系統下開機自啟動的時候拉高GPIOG8

rootNanoPi-NEO-Core:/# touch open_4g_ec20.sh rootNanoPi-NEO-Core:/# vi open_4g_ec20.sh 【打開使能引腳200 IOG8】 echo 200 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio200/direction echo 1 > /sys/class/gpio/gpio200/value 【切記&#xff1a…

解惑1、為何大容量電容濾低頻,小容量電容濾高頻

一、電容的種類: 鏈接: 二、疑惑 理論推算: 1)Zc1/wc,那么大容量和小容量的電容,不應該都是 越高頻越阻抗低,越容易通過? 2)大容量,積蓄電荷速度慢&#…

如何有效監控JVM環境,保障應用性能

緩慢的Java應用程序、意外崩潰和晦澀的內存問題——這些都是JVM可能在默默承受壓力的信號。JVM監控對于保障Java應用的正常運行時間和最佳性能至關重要,它提供了對Java虛擬機內存、線程和CPU資源使用情況的可見性,使管理員能夠在影響終端用戶之前識別性能…

python:PyQt5 開發一個郵件客戶端,能編寫郵件,發送郵件及附件

PyQt5 郵件客戶端 下面是一個簡潔高效的郵件客戶端實現,支持編寫郵件、添加附件和發送郵件功能: 編寫 eMailClient_qt.py 如下 # -*- coding: utf-8 -*- """ 用 PyQt5 開發一個郵件客戶端,能編寫郵件,發送郵件及…

React【回顧】 深層次面試詳解:函數式組件核心原理與高級優化

以下是對 React 深層次內容的全面解析,涵蓋函數式組件的核心原理、性能優化、設計模式和最新特性: ?? 一、React 核心機制剖析 1. Fiber 架構深解 Fiber 節點結構:function FiberNode(tag, pendingProps, key) {this.tag = tag; // 組件類型(函數組件=0, 類…

視覺語言模型的“視而不見“

這項研究發現,號稱能“看圖說話”的視覺語言模型(VLMs),在處理需要真正“看”懂圖片的純視覺任務(如判斷深度、找對應點、認物體材質等)時,表現遠不如它們自己內部的“眼睛”(視覺編…

Wyn 商業智能與 3D 大屏的深度融合應用

引言 在當今數字化快速發展的時代,數據可視化對于企業的決策和管理變得至關重要。商業智能軟件作為數據可視化的重要工具,能夠幫助企業將海量的數據轉化為直觀、易懂的信息。而 3D 大屏以其沉浸式、立體的展示效果,為數據可視化帶來了全新的…

使用docker compose部署netmaker打通內網

準備 我看官網推薦都是使用ssl然后要ssl證書,不想走彎路了 一、docker-compose.yml version: "3.4"services:netmaker:container_name: netmakerimage: gravitl/netmaker:v0.90.0restart: unless-stoppedports:- "18081:18082"- "50051…

Linux集市采購指南[特殊字符]:yum和apt的“搶貨”大戰!

Linux集市采購指南🍅:yum和apt的“搶貨”大戰! ? 歡迎來到 Linux軟件生態集市!這里分兩大陣營: 🥬 CentOS/RHEL傳統菜市場:派穩重的 yum 大叔當采購員,做事一板一眼;?…

DataX 框架學習筆記

官方倉庫: https://github.com/alibaba/DataX?tabreadme-ov-file 1. 介紹 1.1. 基本介紹: DadaX 是阿里云 DataWorks 數據集成 的開源版本(異構數據同步、離線數據同步工具 / 平臺)。主要抽象為 Reader 和 Writer 插件&#…

MaxCompute的Logview分析詳解

文章目錄 一、Logview簡介1、概述2、標題與功能3、基礎信息 二、作業詳情1、Job Details2、Fuxi Sensor3、Result①當前作業運行成功,顯示的為運行結果。②當前作業運行失敗,顯示的為失敗原因。 4、SourceXML5、SQL Script6、History7、SubStatusHistory…

HTML5白云飄飄動態效果教程

HTML5白云飄飄動態效果教程 這里寫目錄標題 HTML5白云飄飄動態效果教程效果介紹實現步驟步驟一:創建HTML結構步驟二:設計CSS樣式步驟三:添加JavaScript交互 代碼解析HTML結構解析CSS樣式解析JavaScript功能解析 自定義調整總結 效果介紹 本教…

tcp高難度問題

以下是針對這些問題,在面試場景下,既保證理論扎實、邏輯清晰,又具備交流延展性的回答思路與內容,可根據實際面試節奏和面試官反饋靈活調整展開: 1. 客戶端端口號如何確定的? 面試官您好,客戶端…

廣東省省考備考(第二十八天6.13)—資料分析(第二節課)

基期與現期 官方定義:作為對比參照的是基期,而相對于基期比較的是現期 通俗說法:時間靠前的為基期,時間靠后的為現期 增長量與增長率 增長量用來表述基期量與現期量變化的絕對量; 增長率用來表述基期量與現期量變化…

pytorch 中前向傳播和后向傳播的自定義函數

系列文章目錄 文章目錄 系列文章目錄一、torch.autograd.function代碼實例 在開始正文之前,請各位姥爺動動手指,給小店增加一點訪問量吧,點擊小店,同時希望我的文章對你的學習有所幫助。本文也很簡單,主要講解pytorch的…

【項目實訓#08】HarmonyOS知識圖譜前端可視化實現

【項目實訓#08】HarmonyOS知識圖譜前端可視化實現 文章目錄 【項目實訓#08】HarmonyOS知識圖譜前端可視化實現一、背景簡介二、技術方案與架構設計2.1 技術選型2.2 組件架構設計 三、知識圖譜可視化組件實現3.1 KGResultTab組件設計組件模板結構不同狀態的處理用戶交互控制節點…

【軟件開發】什么是DSL

什么是DSL DSL(Domain-Specific Language,領域特定語言)是一種為特定領域或任務設計的編程語言,目的在于提高該領域中的表達能力與開發效率。 1 在腳本語言中的 DSL 是什么? 在腳本語言(如 Python、Lua、…

JasperReport生成PDF/A類型文檔

當JasperReport導出的文檔為PDF/A模式時,該PDF為只讀可以防止被修改。 設置導出參數 JRPdfExporter exporter new JRPdfExporter();exporter.setExporterInput(SimpleExporterInput.getInstance(jasperPrints));exporter.setExporterOutput(new SimpleOutputStre…

微信小程序使用畫布實現飄落泡泡功能

微信小程序使用畫布實現飄落泡泡功能:從組件封裝到頁面調用的完整實踐 先看示例截圖: 一、背景與技術選型 在微信小程序中實現類似于飄落的泡泡或者櫻花飄落的功能,一般主要有 Canvas 和圖片兩種方案: (1&#xff…

使用STM32設置GPIO中斷

使用S? 32設置GPIO中斷 中斷示例按鍵中斷實例設計:EXTI0和EXTI9硬件連接分析STM32代碼實現代碼說明 中斷示例 設計一個按鍵中斷的實例。設置兩個中斷:EXTI0、EXTI9, 在EXTI9的中斷服務之程序中實現LED燈的控制 按鍵中斷實例設計&#xff…