大數據資料可視化: Python QT GUI程式設計 | 誠品線上

大數據資料可視化: Python QT GUI程式設計

作者 王維波/ 栗寶鵑/ 張曉東
出版社 聯合發行股份有限公司
商品描述 大數據資料可視化: Python QT GUI程式設計:人工智慧,大數據操作的後端,需要一個讓使用者能操作的前端介面。應用程式前端介面的選擇,除了Web、App、命令列之外,還有已

內容簡介

內容簡介 人工智慧,大數據操作的後端,需要一個讓使用者能操作的前端介面。應用程式前端介面的選擇,除了Web、App、命令列之外,還有已存在30年的視窗程式。在大型專案開發中,雖然網頁已成為主流,但許多場合,還是有視窗程式的需求。 開發視窗程式首選當然是Visual Studio,但必須熟悉C++ C#。如果讀者已經熟悉了Python,又想開發視窗程式,Qt將會是最好的選擇。讀者只要會Python就可以了。 Qt C++ 類別庫是一套廣泛使用的跨平台GUI 設計類別庫,PyQt5 是Qt5 C++類別庫的Python 綁定,使用PyQt5 在Python 裡程式設計,可以將Python 豐富的科學計算、圖形顯示等功能與PyQt5 的GUI 設計功能結合起來,開發出比較專業的Python GUI 應用程式,便於對研究成果進行有效的整合與展示。 本書介紹在Python 中使用PyQt5、PyQtChart、Matplotlib 等進行GUI 應用程式設計和資料視覺化程式設計的方法,用最真實範例的方式,讓讀者熟悉Qt的開發方式,並且掌控所有視窗的元件,全書內容分為三部分。包括: ►完整Python、Qt開發環境的安裝 ► PyQt5程式設計架構 ►常用視窗元件使用,MV架構、GUI的增強設計 ►滑鼠鍵盤等事件的處理、對話方塊及多視窗的應用 ►資料庫的使用,使用了SQLITE ►PyQt5上的檔案操作、繪圖元件 ►PyQt5多媒體的操作,包括音樂及視訊 ►PyQtChart的圖表製作、PyQtDataVisualization的使用 ►最強大的人工智慧統計繪圖套件Matplotlib的使用 本書特色 ◎ 使用PyQt5 進行GUI 應用程式設計 ◎ 使用PyQtChart、PyQtDataVisualization 和Matplotlib 在GUI 程式的視窗介面上嵌入資料視覺化功能。 適合讀者群:具Python程式設計基礎、想透過Python設計GUI應用程式, 或在GUI應用程式中實現資料視覺化的讀者。

作者介紹

作者介紹 王維波 栗寶鵑 張曉東王維波 博士,大學教師 從事測控技術與儀器專業相關工作,主要研究地球物理探測儀器開發、監測資料處理方法和軟體發展。 栗寶鵑 博士,科研人員 主要從事地球物理、水下探測、遙感等專業方向的資料處理和圖像識別方面的研究工作,在日常工作中常使用Qt和Python解決實際問題。 張曉東 博士,大學教師 從事自動化相關的教學工作,研究方向主要是優化演算法、最優控制和智慧控制。具有豐富的程式設計經驗,善於透過Qt C 和Python的結合提高演算法效率。

產品目錄

產品目錄 前言 第一篇 PyQt5 開發基礎 01 | 開發環境安裝 1.1 Python 1.2 Qt 1.3 PyQt5 | 02 | PyQt5 GUI 程式架構 2.1 PyQt5 GUI 程式的基本架構 2.2 使用視覺化設計表單的GUI程式 2.3 訊號與槽的使用 2.4 自訂訊號的使用 2.5 資源檔的使用 2.6 從Qt C++ 類別庫到PyQt5 2.7 3個單表單GUI 專案範本 第二篇 GUI 應用程式設計 | 03 | 常用介面元件的使用 3.1 資料登錄輸出 3.2 QPushButton 3.3 QSlider 和QProgressBar 3.4 日期時間資料 3.5 計時器QTimer 3.6 下拉式選單QComboBox 3.7 QMainWindow 與QAction 3.8 QListWidget 和QToolButton 3.9 QTreeWidget 和QDockWidget 3.10 QTableWidget 3.11 容器類別元件與版面配置設計 | 04 | Model View 結構 4.1 Model View 結構 4.2 QFileSystemModel 4.3 QStringListModel 4.4 QStandardItemModel 4.5 自訂代理 | 05 | 事件處理 5.1 預設事件處理 5.2 事件攔截與事件過濾 5.3 拖放事件與拖放操作 5.4 具有拖放操作功能的元件 | 06 | 對話方塊與多視窗設計 6.1 標準對話方塊 6.2 自訂對話方塊及其使用 6.3 多視窗應用程式 6.4 MDI 應用程式設計 | 07 | 資料庫 7.1 Qt SQL 模組概述 7.2 QSqlTableModel 的使用 7.3 QSqlQueryModel 的使用 7.4 QSqlQuery 的使用 7.5 QSqlRelationalTableModel 的使用 | 08 | 繪圖 8.1 QPainter 繪圖 8.2 座標系統和座標轉換 8.3 自訂介面元件 8.4 Graphics View 繪圖架構 | 09 | 檔案 9.1 檔案操作相關類別概述 9.2 文字檔讀寫 9.3 二進位檔案讀寫 9.4 目錄和檔案操作 | 10 | 多媒體 10.1 PyQt5 多媒體模組功能概述 10.2 音訊播放 10.3 音訊輸入 10.4 視訊播放 10.5 攝影機的使用 | 11 | GUI 設計增強技術 11.1 多語言介面 11.2 QSS 訂製介面 第三篇 資料視覺化 | 12 | PyQtChart 二維繪圖 12.1 PyQtChart 概述 12.2 QChart 繪製聚合線圖 12.3 QChart 繪圖進階功能 12.4 對數座標軸和多座標軸 12.5 圓形圖和各種柱狀圖 12.6 蠟燭圖和日期時間座標軸 12.7 區域填滿圖 12.8 極座標圖 | 13 | PyQtDataVisualization 3D 繪圖 13.1 PyQtDataVisualization 模組概述 13.2 3D 柱狀圖 13.3 3D 散點圖 13.4 立體曲面圖 | 14 | Matplotlib 資料視覺化 14.1 Matplotlib 的基本用法 14.2 圖的主要元素的物件導向操作 14.3 互動操作 14.4 典型二維圖的繪製 14.5 3D 資料繪圖

商品規格

書名 / 大數據資料可視化: Python QT GUI程式設計
作者 / 王維波 栗寶鵑 張曉東
簡介 / 大數據資料可視化: Python QT GUI程式設計:人工智慧,大數據操作的後端,需要一個讓使用者能操作的前端介面。應用程式前端介面的選擇,除了Web、App、命令列之外,還有已
出版社 / 聯合發行股份有限公司
ISBN13 / 9789865501150
ISBN10 / 9865501155
EAN / 9789865501150
誠品26碼 / 2681858011004
頁數 / 768
注音版 /
裝訂 / P:平裝
語言 / 1:中文 繁體
尺寸 / 23X17CM
級別 / N:無
重量(g) / 1071.2

最佳賣點

最佳賣點 : 本書介紹在Python 中使用PyQt5、PyQtChart、Matplotlib 等進行GUI 應用程式設計和資料視覺化程式設計的方法,用最真實範例的方式,讓讀者熟悉Qt的開發方式,並且掌控所有視窗的元件

試閱文字

導讀 : 前言
Python 作為一個開放原始碼的直譯型程式設計軟體,在教學、科學研究、實際專案中用得越來越多。Python 易學好用,程式資源豐富,在程式設計解決一些科學計算問題時比較實用,但是Python 附帶的Tkinter 套件設計GUI 程式的功能比較弱,無法設計專業的GUI 應用程式。
Qt C++ 類別庫是一套廣泛使用的跨平台GUI 設計類別庫,PyQt5 是Qt5 C++類別庫的Python 綁定,使用PyQt5 在Python 裡程式設計,可以將Python 豐富的科學計算、圖形顯示等功能與PyQt5 的GUI 設計功能結合起來,開發出比較專業的Python GUI 應用程式,便於對研究成果進行有效的整合與展示。
目前,介紹Python 程式設計的書很多,但是專門介紹PyQt5 GUI 程式設計的書很少。本書介紹兩個主題:一個是使用PyQt5 進行GUI 應用程式設計,另一個是使用PyQtChart、PyQtDataVisualization 和Matplotlib 在GUI 程式的視窗介面上嵌入資料視覺化功能。這兩個主題都是非常實用的,可以將研究成果整合為一個GUI 應用程式,進行互動式操作和結果展示。
☘ 本書內容
本書介紹在Python 中使用PyQt5、PyQtChart、Matplotlib 等進行GUI 應用程式設計和資料視覺化程式設計的方法,全書的內容分為三部分。
第一部分是PyQt5 開發基礎,包含第1 章和第2 章。
第1 章介紹Python、Qt、PyQt5 的特點和安裝方法,在Windows 中建立開發環境。
第2 章介紹使用PyQt5 開發GUI 應用程式的基本架構原理,包含GUI 應用程式的基本結構、使用視覺化設計UI 表單時開發GUI 程式的流程和架構、訊號與槽的使用方法等。掌握了第2 章的內容就掌握了PyQt5 開發GUI 應用程式的架構性原理,再學習第二部分和第三部分就很容易了。
第二部分是GUI 應用程式設計,從第3 章至第11 章。
這部分介紹GUI 應用程式設計中常用的一些功能模組的程式設計使用方法,包含常用介面元件的使用、Model/View 結構、事件處理、對話方塊和多視窗設計、資料庫、繪圖、檔案讀寫和操作、多媒體、多語言介面和Qt 樣式表訂製介面等。
這部分的內容根據PyQt5 和Python 各自的特點做了取捨,整體的原則就是對GUI 程式設計中必需的,而Python 中沒有或功能不強的模組介紹。舉例來說,Python 雖然有附帶的資料庫、多媒體、檔案讀寫功能模組,但是功能不如PyQt5 的對應模組,或不易與PyQt5 的GUI 程式的視窗介面結合使用,因此本書就介紹PyQt5 的資料庫、多媒體、檔案讀寫功能模組。而Python 附帶的多執行緒程式設計功能已經比較全,且不涉及使用者介面,因此本書就不介紹PyQt5 的多執行緒程式設計功能。Python 有很多功能強大的協力廠商網路功能模組,因此沒有必要介紹PyQt5 的網路程式設計功能。
第三部分是資料視覺化程式設計,從第12 章至第14 章。
Chart 和Data Visualization 模組是Qt C++ 類別庫的一部分, 分別用於二維圖表繪製和3D 資料視覺化,但是PyQt5 中沒有這兩個模組,需要單獨安裝PyQtChart 套件和PyQtDataVisualization 套件。第 12 章介紹使用PyQtChart 模組繪製各種二維圖表的程式設計方法,第13 章介紹使用PyQtDataVisualization模組繪製3D 柱狀圖、3D 散點圖和立體曲面圖的程式設計方法。
Matplotlib 是Python 中應用最廣泛的資料視覺化模組,但是一般介紹Matplotlib 資料視覺化的書很少詳細介紹將Matplotlib 嵌入GUI 視窗上的程式設計方法。第14 章專門介紹Matplotlib 與PyQt5 結合,嵌入GUI 程式中實現資料視覺化的程式設計方法,這是在撰寫整合化的Python GUI 應用程式時經常遇到的,是非常實用的功能。
☘ 本書學習路線
本書使用的程式語言是Python,但是本書並不會介紹Python 語言基礎,需要讀者對Python 程式設計有一定的了解,特別是對Python 的物件導向程式設計原理要比較熟悉。如果讀者對Python 不夠熟悉,需要參考專門介紹Python 程式設計基礎的書,學會Python 後再來學習本書。
本書的內容雖然用到Qt 的IDE,即Qt Creator,但是並不需要撰寫任何C++語言程式,所以讀者無須具有C++ 語言基礎。當然,如果讀者有C++ 語言基礎,或對Qt C++ 程式設計比較熟悉,對閱讀本書的內容是非常有幫助的。
學習本書應從第一部分開始。第1 章介紹本書用到的各個軟體及其安裝,架設開發環境。第2 章是本書的基礎和重點內容,介紹了PyQt5 GUI 應用程式的基本程式架構、以UI 表單視覺化設計為基礎的GUI 應用程式的設計流程和工具軟體pyuic5 的使用、UI 與表單業務邏輯分離設計的原理、Qt 的核心技術訊號與槽的使用方法、Qt Creator 中管理和使用資源檔,以及透過工具軟體pyrcc5將資源檔轉為Python 程式的方法。第2 章還建立了3 個單視窗專案範本,本書的大部分範例都是以這幾個專案範本建立為基礎的。
掌握第2 章的內容就掌握了用PyQt5 設計GUI 程式的技術架構,剩下的就是PyQt5 中用於GUI 應用程式設計的各種類的使用了。
第二部分介紹PyQt5 GUI 程式設計中各個技術模組的使用方法,包含常用介面元件、Model/View 結構、事件處理、對話方塊與多視窗設計、資料庫、繪圖、檔案、多媒體等,讀者可以根據自己的需要學習或查閱對應章節。第11章有兩個新的技術點不在第2 章介紹的技術架構內,分別是多語言介面設計方法和Qt 樣式表訂製介面方法。
第三部分介紹資料視覺化設計方法。PyQtChart 和PyQtDataVisualization 是QtC++ 類別庫對應模組的Python 綁定,分別用於二維圖表和3D 資料視覺化設計,其內容的介紹比較全面。另外由於Matplotlib 在Python 資料視覺化中應用廣泛,第14 章專門介紹將Matplotlib 嵌入GUI 表單上實現互動式資料視覺化的設計方法,包含主要的技術點和一些常用二維圖和3D 圖的程式設計使用方法。
PyQtChart、PyQtDataVisualization 與Matplotlib 的某些功能是重合的,但它們各有千秋,讀者可根據自己的需要和熟悉的內容選擇學習和使用。如果讀者熟悉Qt C++ 類別庫中的二維圖表和3D 資料視覺化模組的使用,就參閱第12 章和第13 章;如果讀者熟悉Matplotlib 的使用,就參閱第14 章。
☘ 範例來源程式
本書的範例程式都是在64 位元Windows 7 系統裡開發和測試的。在開始撰寫本書時使用的是Qt 5.11 和PyQt 5.11,完成本書初稿時已經發佈了Qt 5.12 和PyQt 5.12,由於Qt 5.12 是一個LTS(Long Term Supported)版本,於是又用Qt 5.12 和PyQt 5.12 對全書內容和程式進行了檢查、修改和測試。
本書使用的各個軟體或Python 套件的版本分別是Python 3.7.0、Qt 5.12.0、PyQt 5.12、PyQtChart 5.12、PyQtDataVisualization 5.12、Matplotlib 3.0.0。
讀者在拿到本書進行閱讀和學習時,這些軟體一定已經有更新的發佈版本了。讀者在建置開發環境時使用最新的軟體版本即可,不必與本書使用的軟體版本完全一致,因為這些軟體在大的版本序列裡基本上是向下相容的。
本書提供所有範例來源程式的下載,讀者可到本公司官網搜索到本書後,根據提示(請輸入DM2006)下載本書的範例程式資源。本書提供兩套範例來源程式,使用目的不同。
一套是具有全部原始程式的程式,包含Qt 專案、UI 表單、Python 程式等,其中Python 主程式可以直接執行,顯示範例執行結果。讀者可以使用這套來源程式測試和檢視範例執行結果,並檢視已設計好的UI 表單和Python 程式檔案。
另外一套是只有UI 表單的不完整程式,包含Qt 專案、UI 表單、Python 程式架構,其中的Python 程式檔案只有基本架構,沒有功能實現程式。這套程式是為了便於讀者使用已經設計好的UI 表單,根據書上介紹的內容和過程,在Python 程式架構裡自己撰寫程式,逐步實現功能。之所以保留UI 表單,是因為UI 表單的視覺化設計是個比較耗時間的過程,讀者如果自己從頭開始設計UI 表單,難以保障所有元件的名稱和屬性與範例的一致,在Python 程式設計實現業務功能時容易出現問題。
作者一貫認為UI 表單的視覺化設計不是學習程式設計的重點,表單介面的建立能用視覺化設計解決的就不要用程式。一般情況下,做過幾個範例後很快就可以掌握UI 表單視覺化設計的方法,所以,學習程式設計的重點是各種介面元件和功能類別的介面函數、訊號的靈活使用,以實現程式的業務邏輯功能。
☘ 本書約定
本書撰寫和執行Python 程式使用Python 3.7 附帶的軟體IDLE,對於Python 程式有以下的約定。
Tab 縮排使用3 個空格。因為Python 來源程式是採用縮排確定程式碼片段的,排版時為減少縮排空格數,本書設定Tab 為3 個空格。
程式碼片段的縮排只用相對縮排。在文中一個程式碼片段內的程式使用相對縮排,而非整個程式檔案內的縮排。

活動