-
1 # 小紅的甜心
-
2 # 小小猿愛嘻嘻
這個非常簡單,PyQt就可以輕鬆實現,一個基於Qt的介面包,可以直接拖拽控制元件設計UI介面,下面我簡單介紹一下這個包的安裝和使用,感興趣的朋友可以自己嘗試一下:
1.首先,安裝PyQt模組,這個直接在cmd視窗輸入命令“pip install pyqt5”就行,如下,整個模組比較大,下載過程需要等待一會兒,保持聯網:
2.安裝完成後,我們就可以直接開啟Qt自帶的Qt Designer設計師設計介面了,這裡預設會安裝到site-packages->PyQt5->Qt->bin目錄,開啟後的介面如下,可以直接新建對話方塊等視窗,所有的控制元件都可以直接拖拽,編輯屬性,非常方便:
設計完成後,還只是一個ui檔案,不是現成的Python程式碼,還需要藉助pyuic5工具(也在bin目錄下)才能將ui檔案轉化為Python程式碼,切換到ui檔案所在目錄,輸入命令“pyuic5 -o login.py login.ui”即可(這裡替換成你的ui檔案),轉化成功後的Python程式碼如下(部分截圖):
還需要在最下面新增一個main函式,建立上面Ui_Form類物件顯示視窗即可,如下:
至此,我們就完成了利用Python的PyQt模組直接拖拽控制元件來設計UI介面。總的來說,整個過程非常簡單,只要你有一定的Python基礎,熟悉一下操作過程,很快就能掌握的,當然,還有許多其他UI開發模組,像tkinter,wxPython,Eric6等,也都非常不錯,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。
-
3 # IT技術管理那些事兒
本文所演示的的視覺化方法
散點圖 (Scatterplot)直方圖 (Histogram)小提琴圖 (Violinplot)特徵兩兩對比圖(Pairplot)安德魯斯曲線 (Andrews curves)核密度圖 (Kernel density estimation plot)平行座標圖 (Parallel coordinates)Radviz (力矩圖?)熱力圖 (Heatmap)氣泡圖 (Bubbleplot)這裡主要使用Python一個流行的作圖工具: Seaborn library,同時Pandas和bubbly輔助。為什麼Seaborn比較好?
因為很多時候資料分析,建模前,都要清洗資料,清洗後資料的結果總要有個格式,我知道的最容易使用,最方便輸入模型, 最好畫圖的格式叫做"Tidy Data" (Wickham H. Tidy data[J]. Journal of Statistical Software, 2014, 59(10): 1-23.) 其實很簡單,Tidy Data格式就是:
每條觀察(記錄)自己佔一行觀察(記錄)的每個特徵自己佔一列舉個例子,我們即將作圖的資料集IRIS就是Tidy Data(IRIS(IRIS資料集)_百度百科):
Iris資料集是常用的分類實驗資料集,由Fisher, 1936收集整理。Iris也稱鳶尾花卉資料集,是一類多重變數分析的資料集。資料集包含150個數據集,分為3類,每類50個數據,每個資料包含4個屬性。可透過花萼長度,花萼寬度,花瓣長度,花瓣寬度4個屬性預測鳶尾花卉屬於(Setosa,Versicolour,Virginica)三個種類中的哪一類。
該資料集包含了5個屬性:
Sepal.Length(花萼長度),單位是cm;
Sepal.Width(花萼寬度),單位是cm;
Petal.Length(花瓣長度),單位是cm;
Petal.Width(花瓣寬度),單位是cm;
種類:Iris Setosa(山鳶尾)、Iris Versicolour(雜色鳶尾),以及Iris Virginica(維吉尼亞鳶尾)。
IRIS資料可以看到,每條觀察(ID=0,1,2...)自己佔一行,每個特徵(四個部位長/寬度,種類)自己佔一列。Seaborn就是為Tidy Data設計的,所以方便使用。
所以這個資料集有6列,6個特徵,很多時候做視覺化就是為了更好的瞭解資料,比如這裡就是想看每個種類的花有什麼特點,怎麼樣根據其他特徵把花分為三類。我個人的喜好是首先一張圖儘量多的包含資料點,展示資料資訊,從中發現規律。我們可以利用以下程式碼完全展示全部維度和資料這裡用的bubbly:
三維圖,全域性觀察Python做出來,其實是一張可以拖動角度,放大縮小的圖,拖一拖看各角度檢視會發現三類還是分的挺明顯的。Github上這個bubbly還是很厲害的,方便。
接下來開始做一些基礎的視覺化,沒有用任何修飾,程式碼只有最關鍵的畫圖部分,視覺化作為比賽的一個基礎和開端,個人理解做出的圖能看就行,美不美無所謂,不美也不扣分。因為
散點圖,可以得到相關性等資訊,比如基本上SepalLengthCm越大,SepalWidthCm越大
散點圖使用Jointplot, 看兩個變數的分佈,KDE圖,同時展示對應的資料點
就像上一篇說的,比賽中的每個環節都至關重要,很有必要看下這些分佈直方圖,kde圖,根據這些來處理異常值等,這裡請教,為什麼畫了直方圖還要畫KDE??我理解說的都是差不多的東西。
關於KDE:"由於核密度估計方法不利用有關資料分佈的先驗知識,對資料分佈不附加任何假定,是一種從資料樣本本身出發研究資料分佈特徵的方法,因而,在統計學理論和應用領域均受到高度的重視。"
無論如何,我們先畫直方圖,再畫KDE
直方圖KDE 圖這裡透過KDE可以說,由於Setosa的KDE與其他兩種沒有交集,直接可以用Petailength線性區分Setosa與其他兩個物種。
Pairplot箱線圖,顯示一組資料分散情況的統計圖。形狀如箱子。主要用於反映原始資料分佈的特徵,關鍵的5個黑線是最大值、最小值、中位數和兩個四分位數。在判斷異常值,處理異常值時候有用。
BoxPlot小提琴圖
Violinplot這個Andrews curves很有趣,它是把所有特徵組合起來,計算個值,展示該值,可以用來確認這三個物種到底好不好區分,維基百科的說法是“If there is structure in the data, it may be visible in the Andrews" curves of the data.”(Andrews plot - Wikipedia)
Andrews' curvesradvizRadviz視覺化原理是將一系列多維空間的點透過非線性方法對映到二維空間的視覺化技術,是基於圓形平行座標系的設計思想而提出的多維視覺化方法。圓形的m條半徑表示m維空間,使用座標系中的一點代表多為資訊物件,其實現原理參照物理學中物體受力平衡定理。 多維空間的點對映到二維可視空間的位置由彈簧引力分析模型確定。 (Radviz視覺化原理 - CSDN部落格) ,能展示一些資料的可區分規律。
數值是皮爾森相關係數,淺顏色表示相關性高,比如Petal.Length(花瓣長度)與 Petal.Width(花瓣寬度)相關性0.96,也就是花瓣長的花,花瓣寬度也大,也就是個大花。
不過,現在做視覺化基本上不用python了,具體為什麼可以去看我的寫的文章,我拿python做了爬蟲,BI做了視覺化,效果和速度都很好。
finereport視覺化的一大應用就是資料報表,而FineReport可以自由編寫整合所需要的報表欄位進行報表輸出,支援定時重新整理和監控郵件提醒,是大部分網際網路公司會用到的日常報表平臺。
尤其是公司體系內經營報表,我們用的是商業報表工具,就是finereport。推薦他是因為有兩個高效率的點:①可以完成從資料庫取數(有整合資料功能)—設計報表模板—資料展示的過程。②類似excel做報表,一張模板配合引數查詢可以代替幾十張報表。
FineBI簡潔明瞭的資料分析工具,也是我個人最喜歡的視覺化工具,優點是零程式碼視覺化、視覺化圖表豐富,只需要拖拖拽拽就可以完成十分炫酷的視覺化效果,擁有資料整合、視覺化資料處理、探索性分析、資料探勘、視覺化分析報告等功能,更重要的是個人版免費。
主要優點是可以實現自助式分析,而且學習成本極低,幾乎不需要太深奧的程式設計基礎,比起很多國外的工具都比較易用上手,非常適合經常業務人員和運營人員。在綜合性方面,FineBI的表現比較突出,不需要程式設計而且簡單易做,能夠實現平臺展示,比較適合企業使用者和個人使用者,在資料視覺化方面是一個不錯的選擇;
這些是我見過比較常用的,對資料探索有幫助的視覺化方法。
回覆列表
首先,如果沒有安裝python和PyQt軟體的請先直接搜尋下載並安裝。python是一個開源軟體,因此都是可以在網上免費下載的,最新版本即可。下載完成後,我們先開啟PyQt designer。
2
開啟後,首先是一個預設的新建視窗介面,在這裡我們就選擇預設的視窗即可。
3
現在是一個完全空白的視窗。第一步我們要先把所有的設計元素都拖進這個視窗。我們先拖入一個“Label”,就是一個不可編輯的標籤。
隨後我們再拖入一個可以編輯的“Line Edit”
目前我們已經把所有所需要的元素都拖入了新建的視窗。對於每一個元素,我們都可以雙擊進行屬性值的修改,此時我們僅需要雙擊改個名字即可
此時我們已經完成了一半,接下來需要對動作訊號進行操作。我們需要先切入編輯訊號的模式
此時把滑鼠移動到任意元素,都會發現其變成紅色,代表其被選中。
當我們選中pushbutton後,繼續拖動滑鼠指向上面的line edit,會發現由pushbutton出現一個箭頭指向了line edit,代表pushbutton的動作會對line edit進行操作。
右邊是對line edit的操作,我們選擇clear(),即清楚line edit中的內容。
儲存完成後,我們在PyQt中的操作就已經完成了。儲存的檔名我們命名為test,PyQt生成的設計檔案字尾是.ui。