欧美中文字幕第一页-欧美中文字幕一区-欧美中文字幕一区二区三区-欧美中文字幕在线-欧美中文字幕在线播放-欧美中文字幕在线视频

Python Matplotlib 繪圖使用指南 (附代碼)

我是創始人李巖:很抱歉!給自己產品做個廣告,點擊進來看看。  

雷鋒網 (公眾號:雷鋒網) 按:本文為雷鋒字幕組編譯的技術博客,原標題 Matplotlib Plotting Guide, 作者為 Prince Grover。

翻譯 | 李振? ?于志鵬? ? 整理 |? 凡江


Python Matplotlib 繪圖使用指南 (附代碼)

大多數人不會花大量時間去學 matplotlib 庫,仍然可以實現繪圖需求,因為已經有人在 stackoverflow、github 等開源平臺上提供了絕大多數畫圖問題的解決方案。我們通常會使用 google 來完成繪圖需求。至少我是這樣。

那學 matplotlib 庫有什么用?答案是:可以節約搜索時間。掌握 matplotlib 的速查表并了解其基本接口,根據個性需求從眾多資源中編輯我們的繪圖,從長期來看會節約很多的時間。

大部分內容取自以下 2 個鏈接,建議也去閱讀一下。

https://realpython.com/python-matplotlib-guide/#why-can-matplotlib-be-confusing

https://s3.amazonaws.com/assets.datacamp.com/blog_assets/Python_Matplotlib_Cheat_Sheet.pdf

Python Matplotlib 繪圖使用指南 (附代碼)

matplotlib?是一個基于 Python 的 2D 繪圖庫,其可以在跨平臺的在各種硬拷貝格式和交互式環境中繪制出高圖形。

  • 一個有趣的現象。為什么引用庫總采用 import matplotlib.pyplot as plt 的方式呢?

    因為使用例如 pylab import * 或者 %pylab 是一個非常不好的方式,matplotlib 官方不建議這樣使用,具體原因如下:

由于歷史原因, from pylab import * 仍然存在,但是強烈建議不要這樣使用。這樣做會遮蔽 Python 的內置函數進而占用命名空間,導致難以追蹤的 bugs。想要實現零輸入獲得 IPython 集成,推薦使用?%matplotlib 命令。 來源 : https://matplotlib.org/users/shell.html#using-matplotlib-in-a-python-shell

使用 matplotlib 繪制不同類型的圖像是很容易的,有很多文檔和教程。最重要的是,了解最佳的繪圖方式。如何使用 axes,subplots 等。這篇文章主要針對這些問題。

1.內聯繪圖和 % matplotlib?

%matplotlib 命令可以在當前的 Notebook 中啟用繪圖。這個命令提供一個可選參數,指定使用哪個 matplotlib 后端。絕大多數情況下,Notebook 中都是使用 inline 后臺,它可以在 Notebook 中嵌入繪圖。另一個選項是 qt 后臺,它在側窗口打中打開 Matplotlib 交互 UI 。

Matlibplot 提供了多種繪圖 UI ,可進行如下分類 :

  • 彈出窗口和交互界面: %matplotlib qt 和 %matplot tk

  • 非交互式內聯繪圖: %matplotlib inline

  • 交互式內聯繪圖: %matplotlib notebook-->別用這個,它會讓開關變得困難。

2.理解 matplotlib 對象結構

pyplot 是一個 matplotlib 面向對象的函數接口。

plt.gca()

它返回當前 plot() 關聯的軸

Python Matplotlib 繪圖使用指南 (附代碼)

如果不使用 plt.close() ,則會顯示出空的圖形。因為在開始時使用了 inline 命令。

Python Matplotlib 繪圖使用指南 (附代碼)

axis_id 仍然是相同的,但是當我們移動到另一個 Notebook 塊時, plt.gca()? 會發生變化。

Setter 和 Getter

Getter 和 Setter 方法用于捕獲當前或任意 axies 以及對其進行修改。我們可能需要修改標題、顏色、圖列、字體等。有兩種方法:

1. 使用 fig.axes[i] 指定要抓取的? axes ,使用 setter 的 getter 對 axies 對象進行調用。在上面的例子中,只有一個 axes,所以我們調用 axes[0]。

2. 我們可以直接使用 plt.bla() ? 調用當前 axis(其中,bla 可以是 title(),legend(),xlabel()等)。這是 matlibplot 面向對象的一種函數。這個函數讓修改當前的 axes 變得容易。比 1 的方法更常用。

Python Matplotlib 繪圖使用指南 (附代碼)

當我們使用 axes[i]? 時,我們可以調用任何之前的代碼塊中的任何 axes 對象,但是調用 plt.bla() ,會在每個代碼塊中創建新的 axes 對象,并只調用當前對象。因此,上面例子中,只在 plt.title()? 被調用時,才創建新 plt 對象。

重要觀察: 我們通常在當前 axis 對象上調用 plt.bla(),這種語法使得每個代碼塊中的 axis 對象都是新創建的。但是通過調用 fig.axes[0] ,我們也可以從任何代碼塊中處理之前的 axes 對象。

這是 stateless(object oriented)? 方法,并可以自定義,當圖像變得復雜時,這樣做很方便。

所以,我建議是使用 fig,ax = plt.subplots(_) 先解壓 axes 和 figure,并給它們分配給一個新的變量。然后,可以對這些變量使用 Getter 和 Setter 方法進行繪圖中的更改。此外,這使得我們能夠在多個 axes 上做工作,而不是只在一個當前 axes 上。 pyplot 使用 1 次創建子圖,然后使用 OO 方法。

結論: 從現在開始,我使用 plt.subpots() 來完成不同的繪圖。 (如果有人認為這個觀點是錯誤的,請糾正我)

3.matplotlib 圖像剖析

Python Matplotlib 繪圖使用指南 (附代碼)

來自: https://matplotlib.org/faq/usage_faq.html

4.繪圖的基本例子

如何作圖的基本例子,涵蓋面向對象繪圖的各個方面。請仔細閱讀。

Python Matplotlib 繪圖使用指南 (附代碼)

Python Matplotlib 繪圖使用指南 (附代碼)

總結上面的例子:

  • 我們創建 1 行和 2 列的圖形。即,1 行和 2 列中的 2 個 axes 對象。

  • 我們分別自定義 ax1 和 ax2。可以看到,我們可以將 Y-ticks 移動到右邊的第二圖形中。

5.二維網格的繪制

subplot2grid

需要做什么?

觀察下面的繪圖格式。

Python Matplotlib 繪圖使用指南 (附代碼)

思路是把上面的圖形考慮成為 2x4 網格。然后將多個網格分配給單個圖以容納所需的圖形。

Python Matplotlib 繪圖使用指南 (附代碼)

Python Matplotlib 繪圖使用指南 (附代碼)

重點:

  • 我們可以使用 subplot2grid 定制我們的繪圖布局。

  • 我們可以用 plt.figure() 創建無 axes 對象的圖形,然后手動添加 axes 對象。

  • 我們可以使用 fig.suptitle() 來設置整個圖形的總標題。

6.顏色,顏色條,RGB 數組和顏色圖譜

我們已經介紹了 ax.plot(),ax.scatter(),ax.bar() 和 ax.hist() 等基本圖形操作,另一個更常用的函數是 ax.imshow(),它用來顯示彩色圖或圖像/RGB 數組。

Python Matplotlib 繪圖使用指南 (附代碼)

Python Matplotlib 繪圖使用指南 (附代碼)


Python Matplotlib 繪圖使用指南 (附代碼)

7.線條樣式和線條寬度

改變線條寬度、顏色或風格。

Python Matplotlib 繪圖使用指南 (附代碼)

Python Matplotlib 繪圖使用指南 (附代碼)

8.基本的數據分布

EDA 過程中的必要操作。

Python Matplotlib 繪圖使用指南 (附代碼)

9.二維數組的等高線圖和顏色網格圖

熱像圖(顏色網格圖)和等高線圖在很多情況下都有助于可視化 2D 數據。

Python Matplotlib 繪圖使用指南 (附代碼)

10.圖像的調整、修改邊緣坐標和標度

最后調整細節,讓繪圖變得更好看。

11.標度的限制和自動調整

Python Matplotlib 繪圖使用指南 (附代碼)

Python Matplotlib 繪圖使用指南 (附代碼)

需要注意的事情:

  • 填充(padding) 自動設置 X 軸或 Y 軸網格標度

  • 我們可以使用? xlim,ylim? 設置 x,y 的刻度限制

12.技巧

Python Matplotlib 繪圖使用指南 (附代碼)

Python Matplotlib 繪圖使用指南 (附代碼)

13.軸線

Python Matplotlib 繪圖使用指南 (附代碼)

14.結束

博客原址:? https://www.kaggle.com/grroverpr/matplotlib-plotting-guide/notebook

Python Matplotlib 繪圖使用指南 (附代碼)

雷鋒網雷鋒網

Python Matplotlib 繪圖使用指南 (附代碼)

隨意打賞

使用指南
提交建議
微信掃一掃,分享給好友吧。
主站蜘蛛池模板: 久久一级片 | 日日操天天操 | 黄色免费网站在线观看 | 一级毛片aa高清免费观看 | 加勒比一本 | 夜夜爽夜夜叫夜夜高潮漏水 | 中国在线播放精品区 | 免费一级片 | 久热国产在线视频 | 日本我不卡 | 中文字幕国产视频 | 日韩欧美一级大片 | 性欧美另类老妇高清 | 亚洲国产大片 | 日本一二区视频 | 天天碰夜夜 | 波多野吉衣一区二区三区四区 | 国产成人亚洲精品乱码在线观看 | 日本a视频| 真人女人一级毛片免费视频观看 | 色爱区综合五月激情 | 国产凹凸在线一区二区色老头 | 亚洲日韩视频 | 亚洲综合在线播放 | 理论大片三在线观看 | 久久伊人最新 | 亚洲国产婷婷综合在线精品 | 91久久精品国产免费一区 | 日韩一级一片 | 99视频精品全国免费 | 人人看97 | 首页 动漫 亚洲 欧美 日韩 | 天天摸天天操 | 4虎影院永久地址www | 久久国产影视免费精品 | 久久久久久久99精品免费 | 久久浮力影院 | 久久99精品久久久久久国产越南 | 99视频精品全国在线观看 | 日本免费不卡视频一区二区三区 | 久久伊人草 |