wxpython教程 wxpython界面開(kāi)發(fā)實(shí)例
- 夕逆IT
- 開(kāi)發(fā)語(yǔ)言
- 2023-09-14
- 128
很多朋友對(duì)于wxpython教程和wxpython界面開(kāi)發(fā)實(shí)例不太懂,今天就由小編來(lái)為大家分享,希望可以幫助到大家,下面一起來(lái)看看吧!wxpython怎么打包成exe很...
很多朋友對(duì)于wxpython教程和wxpython界面開(kāi)發(fā)實(shí)例不太懂,今天就由小編來(lái)為大家分享,希望可以幫助到大家,下面一起來(lái)看看吧!
wxpython怎么打包成exe
很不幸的告訴你,沒(méi)有辦法?。?!
只有你吧wxpython工程給出去,直接運(yùn)行里面的py腳本
python可視化界面怎么做
本文所演示的的可視化方法
散點(diǎn)圖(Scatterplot)
直方圖(Histogram)
小提琴圖(Violinplot)
特征兩兩對(duì)比圖(Pairplot)
安德魯斯曲線(xiàn)(Andrewscurves)
核密度圖(Kerneldensityestimationplot)
平行坐標(biāo)圖(Parallelcoordinates)
Radviz(力矩圖?)
熱力圖(Heatmap)
氣泡圖(Bubbleplot)
這里主要使用Python一個(gè)流行的作圖工具:Seabornlibrary,同時(shí)Pandas和bubbly輔助。為什么Seaborn比較好?
因?yàn)楹芏鄷r(shí)候數(shù)據(jù)分析,建模前,都要清洗數(shù)據(jù),清洗后數(shù)據(jù)的結(jié)果總要有個(gè)格式,我知道的最容易使用,最方便輸入模型,最好畫(huà)圖的格式叫做"TidyData"(WickhamH.Tidydata[J].JournalofStatisticalSoftware,2014,59(10):1-23.)其實(shí)很簡(jiǎn)單,TidyData格式就是:
每條觀(guān)察(記錄)自己占一行
觀(guān)察(記錄)的每個(gè)特征自己占一列
舉個(gè)例子,我們即將作圖的數(shù)據(jù)集IRIS就是TidyData(IRIS(IRIS數(shù)據(jù)集)_百度百科):
Iris數(shù)據(jù)集是常用的分類(lèi)實(shí)驗(yàn)數(shù)據(jù)集,由Fisher,1936收集整理。Iris也稱(chēng)鳶尾花卉數(shù)據(jù)集,是一類(lèi)多重變量分析的數(shù)據(jù)集。數(shù)據(jù)集包含150個(gè)數(shù)據(jù)集,分為3類(lèi),每類(lèi)50個(gè)數(shù)據(jù),每個(gè)數(shù)據(jù)包含4個(gè)屬性??赏ㄟ^(guò)花萼長(zhǎng)度,花萼寬度,花瓣長(zhǎng)度,花瓣寬度4個(gè)屬性預(yù)測(cè)鳶尾花卉屬于(Setosa,Versicolour,Virginica)三個(gè)種類(lèi)中的哪一類(lèi)。
該數(shù)據(jù)集包含了5個(gè)屬性:
Sepal.Length(花萼長(zhǎng)度),單位是cm;
Sepal.Width(花萼寬度),單位是cm;
Petal.Length(花瓣長(zhǎng)度),單位是cm;
Petal.Width(花瓣寬度),單位是cm;
種類(lèi):IrisSetosa(山鳶尾)、IrisVersicolour(雜色鳶尾),以及IrisVirginica(維吉尼亞鳶尾)。
IRIS數(shù)據(jù)可以看到,每條觀(guān)察(ID=0,1,2...)自己占一行,每個(gè)特征(四個(gè)部位長(zhǎng)/寬度,種類(lèi))自己占一列。Seaborn就是為T(mén)idyData設(shè)計(jì)的,所以方便使用。
所以這個(gè)數(shù)據(jù)集有6列,6個(gè)特征,很多時(shí)候做可視化就是為了更好的了解數(shù)據(jù),比如這里就是想看每個(gè)種類(lèi)的花有什么特點(diǎn),怎么樣根據(jù)其他特征把花分為三類(lèi)。我個(gè)人的喜好是首先一張圖盡量多的包含數(shù)據(jù)點(diǎn),展示數(shù)據(jù)信息,從中發(fā)現(xiàn)規(guī)律。我們可以利用以下代碼完全展示全部維度和數(shù)據(jù)這里用的bubbly:
三維圖,全局觀(guān)察Python做出來(lái),其實(shí)是一張可以拖動(dòng)角度,放大縮小的圖,拖一拖看各角度視圖會(huì)發(fā)現(xiàn)三類(lèi)還是分的挺明顯的。Github上這個(gè)bubbly還是很厲害的,方便。
接下來(lái)開(kāi)始做一些基礎(chǔ)的可視化,沒(méi)有用任何修飾,代碼只有最關(guān)鍵的畫(huà)圖部分,可視化作為比賽的一個(gè)基礎(chǔ)和開(kāi)端,個(gè)人理解做出的圖能看就行,美不美無(wú)所謂,不美也不扣分。因?yàn)?/p>
散點(diǎn)圖,可以得到相關(guān)性等信息,比如基本上SepalLengthCm越大,SepalWidthCm越大
散點(diǎn)圖使用Jointplot,看兩個(gè)變量的分布,KDE圖,同時(shí)展示對(duì)應(yīng)的數(shù)據(jù)點(diǎn)
就像上一篇說(shuō)的,比賽中的每個(gè)環(huán)節(jié)都至關(guān)重要,很有必要看下這些分布直方圖,kde圖,根據(jù)這些來(lái)處理異常值等,這里請(qǐng)教,為什么畫(huà)了直方圖還要畫(huà)KDE??我理解說(shuō)的都是差不多的東西。
關(guān)于KDE:"由于核密度估計(jì)方法不利用有關(guān)數(shù)據(jù)分布的先驗(yàn)知識(shí),對(duì)數(shù)據(jù)分布不附加任何假定,是一種從數(shù)據(jù)樣本本身出發(fā)研究數(shù)據(jù)分布特征的方法,因而,在統(tǒng)計(jì)學(xué)理論和應(yīng)用領(lǐng)域均受到高度的重視。"
無(wú)論如何,我們先畫(huà)直方圖,再畫(huà)KDE
直方圖KDE圖這里通過(guò)KDE可以說(shuō),由于Setosa的KDE與其他兩種沒(méi)有交集,直接可以用Petailength線(xiàn)性區(qū)分Setosa與其他兩個(gè)物種。
Pairplot箱線(xiàn)圖,顯示一組數(shù)據(jù)分散情況的統(tǒng)計(jì)圖。形狀如箱子。主要用于反映原始數(shù)據(jù)分布的特征,關(guān)鍵的5個(gè)黑線(xiàn)是最大值、最小值、中位數(shù)和兩個(gè)四分位數(shù)。在判斷異常值,處理異常值時(shí)候有用。
BoxPlot小提琴圖
Violinplot這個(gè)Andrewscurves很有趣,它是把所有特征組合起來(lái),計(jì)算個(gè)值,展示該值,可以用來(lái)確認(rèn)這三個(gè)物種到底好不好區(qū)分,維基百科的說(shuō)法是“Ifthereisstructureinthedata,itmaybevisibleintheAndrews'curvesofthedata.”(Andrewsplot-Wikipedia)
Andrews'curvesradvizRadviz可視化原理是將一系列多維空間的點(diǎn)通過(guò)非線(xiàn)性方法映射到二維空間的可視化技術(shù),是基于圓形平行坐標(biāo)系的設(shè)計(jì)思想而提出的多維可視化方法。圓形的m條半徑表示m維空間,使用坐標(biāo)系中的一點(diǎn)代表多為信息對(duì)象,其實(shí)現(xiàn)原理參照物理學(xué)中物體受力平衡定理。多維空間的點(diǎn)映射到二維可視空間的位置由彈簧引力分析模型確定。(Radviz可視化原理-CSDN博客),能展示一些數(shù)據(jù)的可區(qū)分規(guī)律。
數(shù)值是皮爾森相關(guān)系數(shù),淺顏色表示相關(guān)性高,比如Petal.Length(花瓣長(zhǎng)度)與Petal.Width(花瓣寬度)相關(guān)性0.96,也就是花瓣長(zhǎng)的花,花瓣寬度也大,也就是個(gè)大花。
不過(guò),現(xiàn)在做可視化基本上不用python了,具體為什么可以去看我的寫(xiě)的文章,我拿python做了爬蟲(chóng),BI做了可視化,效果和速度都很好。
finereport
可視化的一大應(yīng)用就是數(shù)據(jù)報(bào)表,而FineReport可以自由編寫(xiě)整合所需要的報(bào)表字段進(jìn)行報(bào)表輸出,支持定時(shí)刷新和監(jiān)控郵件提醒,是大部分互聯(lián)網(wǎng)公司會(huì)用到的日常報(bào)表平臺(tái)。
尤其是公司體系內(nèi)經(jīng)營(yíng)報(bào)表,我們用的是商業(yè)報(bào)表工具,就是finereport。推薦他是因?yàn)橛袃蓚€(gè)高效率的點(diǎn):①可以完成從數(shù)據(jù)庫(kù)取數(shù)(有整合數(shù)據(jù)功能)—設(shè)計(jì)報(bào)表模板—數(shù)據(jù)展示的過(guò)程。②類(lèi)似excel做報(bào)表,一張模板配合參數(shù)查詢(xún)可以代替幾十張報(bào)表。
FineBI
簡(jiǎn)潔明了的數(shù)據(jù)分析工具,也是我個(gè)人最喜歡的可視化工具,優(yōu)點(diǎn)是零代碼可視化、可視化圖表豐富,只需要拖拖拽拽就可以完成十分炫酷的可視化效果,擁有數(shù)據(jù)整合、可視化數(shù)據(jù)處理、探索性分析、數(shù)據(jù)挖掘、可視化分析報(bào)告等功能,更重要的是個(gè)人版免費(fèi)。
主要優(yōu)點(diǎn)是可以實(shí)現(xiàn)自助式分析,而且學(xué)習(xí)成本極低,幾乎不需要太深?yuàn)W的編程基礎(chǔ),比起很多國(guó)外的工具都比較易用上手,非常適合經(jīng)常業(yè)務(wù)人員和運(yùn)營(yíng)人員。在綜合性方面,F(xiàn)ineBI的表現(xiàn)比較突出,不需要編程而且簡(jiǎn)單易做,能夠?qū)崿F(xiàn)平臺(tái)展示,比較適合企業(yè)用戶(hù)和個(gè)人用戶(hù),在數(shù)據(jù)可視化方面是一個(gè)不錯(cuò)的選擇;
這些是我見(jiàn)過(guò)比較常用的,對(duì)數(shù)據(jù)探索有幫助的可視化方法。
如何讓Python腳本成為在Windows環(huán)境中運(yùn)行的exe文件
在Python開(kāi)發(fā)過(guò)程中,我們除了可以將發(fā)布模塊打包成.whl格式的文件,也可以打包成可執(zhí)行的exe程序。這樣即使在沒(méi)有Python的環(huán)境中仍然可以直接運(yùn)行程序,提升使用效率。
接下來(lái)就分享一下,如何使用PyInstaller庫(kù)將發(fā)布模塊打包成exe格式文件。
PyInstaller安裝建議使用pip的方式進(jìn)行安裝,否則可能會(huì)報(bào)缺失其它依賴(lài)庫(kù)的情況,需要逐個(gè)手動(dòng)安裝。
pipinstallPyInstallerPyInstaller使用如下,簡(jiǎn)單代碼示例WriteFiles.py模塊,其中導(dǎo)入了Python內(nèi)置庫(kù)time模塊和第三方庫(kù)csv模塊,實(shí)現(xiàn)每次運(yùn)行時(shí),創(chuàng)建新的csv文件,源碼如下。
WriteFiles.py模塊的當(dāng)前目錄結(jié)構(gòu),如下:
在該模塊目錄內(nèi)執(zhí)行如下命令,將WriteFiles.py打包成exe格式文件。
pyinstallerWriteFiles.py執(zhí)行日志如下:
在運(yùn)行完成后,我們?cè)诋?dāng)前目錄中可以看到生成了.\build\WriteFiles\WriteFiles.exe文件,如下:
我們雙擊執(zhí)行WriteFiles.exe,可以發(fā)現(xiàn)在當(dāng)前目錄下,新增了WriteFile_1573221278.csv文件。
從上面的例子中,我們發(fā)現(xiàn)生成的文件數(shù)量太多了,如何進(jìn)行簡(jiǎn)化生成結(jié)果?
我們可以嘗試使用其中-n參數(shù),使得僅生成一個(gè)文件名為Hello.exe的應(yīng)用程序,執(zhí)行如下命令:
pyinstaller-F-nHello.exeWriteFiles.py我們可以看到在當(dāng)前目錄中生成了.\dist\Hello.exe應(yīng)用程序文件,目錄結(jié)構(gòu)如下。
最后,除了PyInstaller庫(kù)能夠?qū)⒛K打包成exe應(yīng)用程序,pyexe庫(kù)也可以實(shí)現(xiàn)相同效果的打包,這里就不做單獨(dú)的介紹了。
如何用Python制作一個(gè)電子相冊(cè)
這里簡(jiǎn)單介紹一下python制作電子相冊(cè)的過(guò)程,主要用到tkinter和pillow這2個(gè)庫(kù),tkinter用于窗口顯示照片,pillow用來(lái)處理照片,照片切換分為2種方式,一種是自動(dòng)切換(每隔5秒),一種是手動(dòng)切換(窗口點(diǎn)擊鼠標(biāo)左鍵),實(shí)驗(yàn)環(huán)境win10+python3.6+pycharm5.0,主要內(nèi)容如下:
1.tkinter是python自帶的標(biāo)準(zhǔn)庫(kù),不需要安裝,pillow是第三方庫(kù),需要單獨(dú)安裝,安裝命令“pipinstallpillow”,如下:
2.下來(lái)就是python電子相冊(cè)源碼,如下,主要分為3部分,第一部分為引入的包,及窗口布局、全局變量等,第二部分為手動(dòng)切換函數(shù),當(dāng)點(diǎn)擊鼠標(biāo)時(shí),就會(huì)換到下一張照片,第三部分為自動(dòng)切換函數(shù),每隔5秒,自動(dòng)切換到下一張照片,代碼如下:
程序運(yùn)行效果截圖如下,照片會(huì)自動(dòng)切換(或手動(dòng)點(diǎn)擊切換):
至此,我們就完成了利用python來(lái)制作電子相冊(cè)??偟膩?lái)說(shuō),整個(gè)過(guò)程的原理很簡(jiǎn)單,但是實(shí)現(xiàn)起來(lái)還是有一定的難度(尤其是照片切換那兩部分),對(duì)于初學(xué)者來(lái)說(shuō),這里也可以利用wxpython或pyqt來(lái)制作電子相冊(cè)的窗口,基本過(guò)程類(lèi)似,感興趣的可以實(shí)現(xiàn)一下,網(wǎng)上也有相關(guān)教程和資料,感興趣的可以搜一下,希望以上分享的內(nèi)容能對(duì)你有所幫助吧。
wxpython界面開(kāi)發(fā)實(shí)例
創(chuàng)建帶有文本和按鈕的窗口,實(shí)現(xiàn)對(duì)輸入文本的操作。
創(chuàng)建帶有菜單欄、工具欄和狀態(tài)欄的窗口,實(shí)現(xiàn)不同功能的快捷方式。
創(chuàng)建可以顯示圖片的窗口,實(shí)現(xiàn)對(duì)圖片的編輯和存儲(chǔ)。
創(chuàng)建可以顯示HTML內(nèi)容的窗口,實(shí)現(xiàn)交互式的瀏覽器。
python桌面開(kāi)發(fā),為什么選擇PyQt或wxPython,而不使用Tkinter
最主要的原因就是Tkinter參考資料太少,只能滿(mǎn)足基本GUI開(kāi)發(fā)(界面美觀(guān)程度要求不高),因此使用的人比較少,而PyQt和wxPython參考資料豐富,可以直接拖拽控件,界面設(shè)計(jì)美化容易,因此使用的人比較多,下面我簡(jiǎn)單介紹一下這2個(gè)模塊的安裝和使用,感興趣的朋友可以自己嘗試一下:
wxPython這是Python一個(gè)非常不錯(cuò)的GUI開(kāi)發(fā)庫(kù),免費(fèi)、開(kāi)源、跨平臺(tái),可用組件眾多,借助這些組件,程序員可以快速創(chuàng)建完整、功能全面的用戶(hù)界面,因此應(yīng)用非常廣泛,下面我簡(jiǎn)單介紹一下這個(gè)庫(kù):
1.首先,安裝wxPython,這個(gè)直接在cmd窗口輸入安裝命令“pipinstallwxpython”就行,如下,我的Python環(huán)境已正確安裝:
2.安裝完成后,我們就可以直接編寫(xiě)代碼來(lái)測(cè)試這個(gè)模塊了,代碼如下,非常簡(jiǎn)單,一個(gè)文本編輯器,根據(jù)路徑打開(kāi)文件,然后編輯再保存:
程序運(yùn)行截圖如下,效果還是非常不錯(cuò)的:
PyQt這是一個(gè)基于Qt的Python接口包,借助于Qt強(qiáng)大的可視化功能,Python也可以快速開(kāi)發(fā)一個(gè)功能強(qiáng)大、界面美觀(guān)的GUI程序(可以直接拖拽控件),下面我簡(jiǎn)單介紹一下這個(gè)庫(kù):
1.首先,安裝PyQt,這個(gè)也直接在cmd窗口輸入命令“pipinstallpyqt5”就行,如下,安裝的過(guò)程需要耐心等待一會(huì)兒:
2.安裝完成后,我們就可以直接打開(kāi)Qt自帶的設(shè)計(jì)工具QtDesigner進(jìn)行界面設(shè)計(jì)了,默認(rèn)在site-packages->PyQt5->Qt->bin目錄下,所有控件都可以直接拖拽,而且可以使用QSS進(jìn)行美化,非常方便,如下:
3.設(shè)計(jì)完成后,使用pyuic5工具進(jìn)行轉(zhuǎn)化,就會(huì)自動(dòng)生成對(duì)應(yīng)Python代碼,如下,不需要我們?cè)偈謩?dòng)去一行一行編寫(xiě),調(diào)整布局:
4.最后再加一個(gè)main函數(shù),創(chuàng)建上面的類(lèi)對(duì)象,就可以顯示我們創(chuàng)建的界面了,如下:
運(yùn)行程序,截圖如下,就是我們剛才設(shè)計(jì)的GUI界面,非常方便吧,再綁定信號(hào)和槽函數(shù),就可以進(jìn)行用戶(hù)響應(yīng)啦:
至此,我們就介紹完了PyQt和wxPython這2個(gè)模塊的簡(jiǎn)單安裝和使用??偟膩?lái)說(shuō),對(duì)于界面簡(jiǎn)單、功能要求不高的GUI設(shè)計(jì)來(lái)說(shuō),Tkinter完全可以勝任,但是對(duì)于功能比較復(fù)雜、界面美化程度較高的GUI來(lái)說(shuō),PyQT和wxPython更容易,也更好實(shí)現(xiàn),網(wǎng)上也有相關(guān)教程和資料,介紹的非常詳細(xì),感興趣的話(huà),可以搜一下,希望以上分享的內(nèi)容能對(duì)你有所幫助吧,也歡迎大家評(píng)論、留言進(jìn)行補(bǔ)充。
OK,本文到此結(jié)束,希望對(duì)大家有所幫助。
本文鏈接:http:///kaifa/22959.html