搭建一個和我的一樣的、穩健的matplotlib繪圖平臺。
網上這一類的交流、總結文章已經很多,我為什么還要專文來說這個事呢?你可能會說:不就是安裝Python、配置Python環境變量、安裝matplotlib及其依賴包嗎?
前些天,有一位網友求救,說他在matplotlib中繪圖,需要將圖像分辨率設置為 600dpi,但不管怎么操作就是沒有效果,他在圖像屬性中看到的圖片DPI始終只有96dpi
他把代碼發了過來,似乎沒有什么問題。我在jupyter lab中運行這段代碼,生成'cm.jpeg'文件,在PS中查看圖像尺寸:
完全正確,分辨率就是預期的600dpi。
我讓把他看到的圖像屬性截圖給我看看,如下:
按照這個屬性參數,很容易計算出,他電腦上的這張cm.jpeg圖像的物理尺寸是:
寬度 = 40英寸;
高度 = 30英寸。
mpl默認的figsize是(6, 4)。他的代碼并沒有設置'figsize',但生成的圖像尺寸是(40,30) 英寸,這個尺寸太大了,顯然是在哪里修改了rcParams參數,導致了他的苦惱。
如果你對上面的關于分辨率和圖像尺寸的關系不是很清楚,請重新閱讀第4,第5篇文章。
由于Python的開源性,各種開發包又很多,包之間的依賴性極其復雜,所以你的每一個操作都有可能影響整個開發平臺的穩定性,甚至引發災難性后果。
比如:
你在代碼中無意中修改了某個包的默認參數,再也得不到預期的結果;
你升級了某個包,但其它依賴于它的包還沒有對應的升級包(你沒有升級,或者沒有可用的升級包),導致其它包運行出錯;
等等....
所以,搭建一個穩健的Python平臺非常重要。像你我這樣通過網絡交流,雙方保持測試環境的盡可能一致也是非常有好處的。
搭建Python平臺,目前從大方面來說,常見的主要有兩種方式:
直接安裝Python,使用pip安裝和管理平臺,需要用哪個包再安裝它;
通過安裝Anaconda,一次性安裝常用的庫,使用conda安裝和管理平臺。
第1種方式適合非常專業的人員,要求對Pyhton的包管理非常熟練,對包的依賴性有較深的了解,并且有很強的解決遇到的各種問題的能力。
像我這樣的草根推薦第2種方式。
Anaconda是以Python為核心,針對科學計算和機器學習而構建的一個集成環境。
它以一個整潔的包裝給了我們使用Python所需的一切,讓我們可以專注于使用工具而不是維護它們。
首先,它在一個包裝中集成了Python科學計算和機器學習常用的庫;
其次,它使用conda安裝和管理環境,在下載、安裝、更新包時會自動分析你的系統和當前環境,并自動處理包之間的依賴關系;
第三,它還提供一個導航器,讓我這樣的草根可以在圖形窗口管理環境;
第四,它還提供了spyder, prompt等附加工具,作為官方的IDE和Shell命令工具。
一句話,它的優勢在于集成了我們使用Python的主要工具。
建議你按照下面的步驟從頭搭建一個穩健的Python開發平臺,這樣你的測試環境和我的就基本一致了,各種代碼的測試結果也就會基本一致,也會避免出現莫名的問題。
登錄anaconda官網 https://www.anaconda.com/distribution/#download-section
下載相應的版本,我的操作系統是windows 10 64bit 的。
強烈建議下載 Python 3.7 版的,Python2 即將被放棄。
如果你過去一直使用Python 2 ,也不要擔心,轉到Python 3 真的很容易,并且從長遠看是必須的,也是值得的。
像安裝其它windows程序一樣,雙擊運行安裝,一路next,在指定安裝路徑時,建議設置如下:
其它都是默認設置即可。
安裝結束后,程序菜單中會有一個Anaconda3文件夾。
需要進行兩次配置,第一次:
如下圖,打開系統環境變量設置窗口:
雙擊 PATH
打開下面的窗口:
新建;
瀏覽;
找到左邊三個路徑
依次重復操作,即可將Anaconda的環境變量添加到系統中。
添加圖中左側的三個路徑到環境變量中
打開Anaconda Prompt命令行窗口:
輸入命令 : python,返回如下內容:
表示Python安裝配置成功,我的Python版本是3.7.3.
輸入命令:conda,返回如下內容:
表示 conda 管理工具安裝配置成功。
強烈建議:在上面的安裝測試完成后,先創建一個工作虛擬環境。再開始你的探索之旅!
前面說過,因為Python的開源性,包的依賴性復雜,在使用過程中,隨時都會破壞整個 Python 環境,導致出現一些莫名的問題和錯誤。
前面的安裝過程會創建一個base環境,如果直接在這個環境下工作、學習、測試,當系統中的python環境出現問題無法修復時,就不得不卸載Anaconda,再重新安裝它。
如果我們創建一個新環境,工作、測試、學習都在這個環境下進行,當出現問題時,我們只需要刪除這個環境,再重新創建一個環境即可,這比從頭安裝Anaconda要節省時間。
當然虛擬環境還有其它一些用途,不在我們的討論范圍內。
啟動 Anaconda Prompt, 運行如下命令:
conda create -n py373env python=3.7
創建一個名為 'py373env', Python版本為3.7的虛擬環境。
當然,環境的名稱你可以根據喜好定,我習慣于這樣命名,一看就知道,這是一個Python的虛擬環境,并且Python版本是3.7.3。
需要一定的時間,它會下載、安裝一些包,創建你指定的環境,創建完成后。
在Anaconda Prompt中輸入:
激活‘py373env’環境。
可以發現命令行的引導符最右邊的括號中原來的base,變成了py373env,這就表示,你原來處在base環境中,現在轉到了py373env環境中。
你在哪個環境中的操作,主要影響這個環境。比如更新、安裝包,修改一些包的默認參數,只會影響該環境下的包,不會影響base環境。
我習慣于在jupyter lab中工作、學習、測試Python代碼,數據分析、數據可視化。
每天打開 Anaconda Prompt,輸入的第一行命令就是:
conda activate py373env
即,立即轉到我的 py373env 虛擬環境,確保我的操作都是在這個環境下。除非我非常清楚地知道我要在其它環境下工作,我才退出py373env環境,激活其它環境。
退出py373env環境,使用命令:
jupyter lab是jupyte notebook的替代計劃。
jupyter提供了在web中輸入、保存、運行代碼,顯示結果.....的強大功能。
它集交互模式、IDE模式的優點于一身。
是我測試Python代碼、進行數據分析、matplotlib數據可視化的主要戰場。
下面將以在py373env虛擬環境中安裝、配置jupyter lab為例介紹 Anaconda的包安裝和管理。
Anaconda的官方下載通道是 conda-forge
有時會出現下載失敗,下載速度慢的問題,可以添加清華大學的鏡像服務器。
在'系統盤(c)-用戶---用戶名'目錄下有一個Anaconda的配置文件文件:.condarc
用記事本打開這個'.condarc'文件,刪除里面的內容,將下面的內容復制進去,保存即可。
channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ - conda-forgeshow_channel_urls: truessl_verify: true
激活虛擬環境:
在py373env環境下,執行命令:
conda install -c conda-forge jupyterlab
conda會自動分析你的環境,找到合適jupyterlab版本和包,下載安裝它們。
命令中的 '-c conda-forge'是指定從anaconda的官方鏡像下載安裝,這是推薦的方式。如果因網絡的問題,直接使用:
它會根據分析結果和網速選擇配置文件中列出的鏡像源中合適的通道下載鏡像。
安裝完成后,在py373env環境下,輸入:
jupyter lab
即可啟動jupyter lab。
jupyterlab有很多擴展插件可用。安裝合適的插件,能夠使你的效率提高很多。
JupyterLab 的插件是 npm 安裝包。所以按照 JupyterLab 的插件,需要提前安裝好 Node.js。
安裝命令:
完成之后,有兩種方式進行插件的安裝:
通過開啟 Extension Manager 來安裝和管理插件
通過執行命令的方式安裝。 限于篇幅就不講了。
如果使用第一種方式,需要手動開啟 Extension Manager。
在jupytelab頁面,設置,高級設置 (command+逗號 ),選擇Extension Manager一欄,修改設置為 true:
這樣就可以使用Extension Manager來安裝jupyterlab的擴展插件了。
可以搜索插件,安裝插件,對已安裝的插件啟用、禁用、卸載。
安裝好jupyter toc 目錄插件,就可以使用目錄在文檔中導航了。
是不是看起來還不錯?
一個穩健的Python,matplotlib平臺搭建好了,后面就讓我們在這個平臺上煉身手吧!
因為是草根們的草堂,所以可能有點太細了!但這會是我堅持的風格,盡可能讓各等級的草根都能看懂。