1. 程式人生 > >matplotlib設定顏色、標記、線條,讓你的影象更加豐富

matplotlib設定顏色、標記、線條,讓你的影象更加豐富

今天是資料處理專題的第11篇文章,我們繼續來介紹matplotlib這個包的使用方法。

在上一篇文章當中我們介紹了matplotlib當中subplot的概念以及用法,今天我們將會來介紹matplotlib繪圖中的一些具體的設定,可以讓我們畫出來的影象更加豐富,表現力也更強。

顏色

我們之前繪製的影象都是藍色的,這也是matplotlib的預設顏色。我們可以使用color這個引數來設定影象的顏色,比如我們想要畫原諒色的圖,我們就傳入color='green',這樣我們得到的影象就是綠色了。

由於綠色是很常見的顏色(大霧),所以我們沒必要輸入完整的green單詞,使用g作為縮寫就可以了。除了綠色之外,其他常用的顏色也一樣,比如紅色可以就寫成r,藍色寫成b,黃色寫成y等等。

相對來說這些常用顏色還是比較好記的,如果記不住也沒有關係,我們可以在jupyter當中通過plt.plot?這個命令來查閱相關的文件。把文件拉到最後,我們可以看到關於顏色設定的定義:

這裡有兩個顏色看起來不太常用,一個是cyan是青色,另外一個是magenta是品紅。說明老外對顏色的喜好和審美和我們國人還是有些差距的。

除了使用單詞之外,我們還可以使用16進位制來表示顏色。比如#CECECE,表示一種淡淡的灰色。到底有多灰呢?我們畫出來就知道了。

16進製表示顏色是一種常見的方法,我們知道光的三原色是紅綠藍,也就是RGB。在計算機領域常用0-255這256個數字來表示某一個原色的強弱。通過三原色的不同組合,我們可以組合出所有的顏色。一共三種原色,那麼自然也就需要三個數字來表示,由於255以內的數字寫成16進位制只有兩位,所以我們可以用6位16進位制的數字來代表顏色。這也是計算機領域非常常見的顏色表示方法,像是前端CSS調色也是一樣的道理。

標記

下面要介紹的是標記,標記的目的是用來凸顯資料。plot預設畫出來的是一條光滑的曲線,雖然它其實也是將若干個資料點連起來畫成的。光滑的曲線有一個問題就是我們看不出來我們的樣本究竟是什麼,我們只看得到影象,不知道原始資料。

舉個例子,我們用隨機資料畫一個折線圖:

我們固然知道這個圖是由資料點連起來得到的,但是我們能準確得找到所有的資料點嗎?明顯還是比較困難的,因為我們不能判斷每一段看起來比值的線段之間存不存在資料點。

針對這個問題,我們可以使用標記,也就是在圖上把每個點都標出來。最常見的標記就是圓點,我們讓每一個樣本變成一個圓點,這樣就很直觀了。我們可以通過marker這個引數實現這一點,比如如果要畫圓點的話,我們傳入marker='o'即可。

除了圓點之外,還有很多其他的方式,我們同樣可以檢視plot的文件獲得細節。

線條

最後一個可以定製化的內容是線條,我們可以修改plot畫出來的線條種類。預設的當然是實線,既然有實線,那麼肯定也就有虛線。虛線有兩種一種是點虛線一種是全虛線。英文叫做dashed line 和dash-dot line。

線條通過引數linestyle來設定,我們先來看看全虛線,兩個短線表示全虛線。如果是一根短線表示實線,也就是預設的style。

image-20200902162013003

除了虛線圖之外還有點線圖和點狀圖,這兩者顧名思義,大家應該不難猜出來。

三合一

我們回顧一下我們剛才介紹的,一共有三種特性,分別是標記、線條以及顏色。我們需要傳入三個引數來控制它們,怎麼說呢,從邏輯上來說這毫無問題。但操作起來還是有點麻煩,所以matplotlib的作者提供了一個三合一的方法,我們可以直接傳入一個引數把顏色、線條以及標記一起定義了。

怎麼使用呢,我們可以在末尾傳入一個字串,用這一個字串涵蓋剛才介紹的三種引數。我們來看一個例子:

我們很容易看出來這張圖是一張綠色的,點狀標記的虛線圖。我們傳入的字串是'og--',很明顯,o代表的是標記,g代表的是顏色green,--代表的是虛線。我們把這三個引數融合在了一個字串當中。我們交換它們的順序,寫成go--也是一樣OK的。如果你不需要設定標記以及線條,也可以去掉一個,同樣可以執行。

但是這裡要注意,這裡的顏色只能使用縮寫,不支援其他的寫法。說白了這種方法只是用來書寫方便的,如果要追求實用性還是應該使用引數來設定。

我是承志,衷心祝願大家每天都有所收穫。如果還喜歡今天的內容的話,請不要吝嗇你的三連支援,它對我很重要。(點贊、關注、轉發)

原文連結,求個關注

本文使用 mdnice 排版

- END -
![](https://img2020.cnblogs.com/blog/1906483/202009/1906483-20200924101511535-15191411