Task 05:样式色彩秀芳华
文章目錄
- 前言
- 一、matplotlib的繪圖樣式(style)
- 1.matplotlib預先定義樣式
- 2.用戶自定義stylesheet
- 3.設置rcparams
- 4.修改matplotlibrc文件
 
- 二、matplotlib的色彩設置(color)
- 1.RGB或RGBA
- 2.HEX RGB 或 RGBA
- 3.灰度色階
- 4.單字符基本顏色
- 5.顏色名稱
- 6.使用colormap設置一組顏色
 
- 總結
- 參考資料
前言
本文詳細介紹了matplotlib中樣式和顏色的使用,繪圖樣式和顏色是豐富可視化圖表的重要手段,因此熟練掌握本章內(nèi)容可以讓可視化圖表變得更美觀,突出重點和凸顯藝術性。
 關于繪圖樣式,常見的有4種方法,分別是修改預定義樣式,自定義樣式,rcparams和matplotlibrc文件。
 關于顏色使用,本章介紹了常見的5種表示單色顏色的基本方法,以及colormap多色顯示的方法。
一、matplotlib的繪圖樣式(style)
在matplotlib中,要想設置繪制樣式,最簡單的方法是在繪制元素時單獨設置樣式。 但是有時候,當用戶在做專題報告時,往往會希望保持整體風格的統(tǒng)一而不用對每張圖一張張修改,因此matplotlib庫還提供了四種批量修改全局樣式的方式。
1.matplotlib預先定義樣式
matplotlib提供了許多內(nèi)置的樣式供用戶使用,使用方法很簡單,只需在python腳本的最開始輸入想使用的style名稱即可調用,以下樣例比較了不同內(nèi)置樣式的區(qū)別。
import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np plt.style.use('default') plt.plot([1,2,3,4],[2,3,4,5]); plt.show() plt.style.use('ggplot') plt.plot([1,2,3,4],[2,3,4,5]);
 matplotlib內(nèi)置了26種豐富的樣式可供選擇。
2.用戶自定義stylesheet
在任意路徑下創(chuàng)建一個后綴名為mplstyle的樣式清單,編輯文件添加以下樣式內(nèi)容
axes.titlesize : 24 axes.labelsize : 20 lines.linewidth : 3 lines.markersize : 10 xtick.labelsize : 16 ytick.labelsize : 16引用自定義stylesheet后觀察圖表變化。
plt.style.use('test.mplstyle') plt.plot([1,2,3,4],[2,3,4,5]);
 **注:**matplotlib支持混合樣式的引用,只需在引用時輸入一個樣式列表,若是幾個樣式中涉及到同一個參數(shù),右邊的樣式表會覆蓋左邊的值。
3.設置rcparams
我們還可以通過修改默認rc設置的方式改變樣式,所有rc設置都保存在一個叫做 matplotlib.rcParams的變量中。修改過后再繪圖,可以看到繪圖樣式發(fā)生了變化。
plt.style.use('default') # 恢復到默認樣式 plt.plot([1,2,3,4],[2,3,4,5]); mpl.rcParams['lines.linewidth'] = 2 mpl.rcParams['lines.linestyle'] = '--' plt.plot([1,2,3,4],[2,3,4,5]);
 matplotlib還提供了一種更便捷的修改樣式方式,可以一次性修改多個樣式。
4.修改matplotlibrc文件
由于matplotlib是使用matplotlibrc文件來控制樣式的,也就是上一節(jié)提到的rc setting,所以我們還可以通過修改matplotlibrc文件的方式改變樣式。
mpl.matplotlib_fname()
 找到路徑后,就可以直接編輯樣式文件了,文件中列舉了所有的樣式參數(shù),找到想要修改的參數(shù),比如lines.linewidth: 8,并將前面的注釋符號去掉,此時再繪圖發(fā)現(xiàn)樣式已經(jīng)生效了。
 
二、matplotlib的色彩設置(color)
在可視化中,如何選擇合適的顏色和搭配組合也是需要仔細考慮的,色彩選擇要能夠反映可視化圖像的主旨。
 從可視化編碼的角度對顏色進行分析,可以將顏色分為色相、亮度和飽和度三個視覺通道。通常來說:
 色相: 沒有明顯的順序性、一般不用來表達數(shù)據(jù)量的高低,而是用來表達數(shù)據(jù)列的類別。
 明度和飽和度: 在視覺上很容易區(qū)分出優(yōu)先級的高低、被用作表達順序或者表達數(shù)據(jù)量視覺通道。
 在matplotlib中,設置顏色有以下幾種方式:
1.RGB或RGBA
plt.style.use('default') # 顏色用[0,1]之間的浮點數(shù)表示,四個分量按順序分別為(red, green, blue, alpha),其中alpha透明度可省略 plt.plot([1,2,3],[4,5,6],color=(0.1, 0.2, 0.5)) plt.plot([4,5,6],[1,2,3],color=(0.1, 0.2, 0.5, 0.5));2.HEX RGB 或 RGBA
# 用十六進制顏色碼表示,同樣最后兩位表示透明度,可省略 plt.plot([1,2,3],[4,5,6],color='#0f0f0f') plt.plot([4,5,6],[1,2,3],color='#0f0f0f80');
 RGB顏色和HEX顏色之間是可以一一對應的,以下網(wǎng)址提供了兩種色彩表示方法的轉換工具:https://www.colorhexa.com/
3.灰度色階
# 當只有一個位于[0,1]的值時,表示灰度色階 plt.plot([1,2,3],[4,5,6],color='0.5');4.單字符基本顏色
# matplotlib有八個基本顏色,可以用單字符串來表示,分別是'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w',對應的是blue, green, red, cyan, magenta, yellow, black, and white的英文縮寫 plt.plot([1,2,3],[4,5,6],color='c');5.顏色名稱
# matplotlib提供了顏色對照表,可供查詢顏色對應的名稱 plt.plot([1,2,3],[4,5,6],color='olive');
 如下展示了部分顏色對照表:
 
6.使用colormap設置一組顏色
有些圖表支持使用colormap的方式配置一組顏色,從而在可視化中通過色彩的變化表達更多信息。
 在matplotlib中,colormap共有五種類型:
 順序(Sequential):通常使用單一色調,逐漸改變亮度,顏色漸漸增加,用于表示有序的信息。
 發(fā)散(Diverging):改變兩種不同顏色的亮度和飽和度,這些顏色在中間以不飽和的顏色相遇;當繪制的信息具有關鍵中間值(例如地形)或數(shù)據(jù)偏離零時,應使用此值。
 循環(huán)(Cyclic):改變兩種不同顏色的亮度,在中間和開始/結束時以不飽和的顏色相遇。用于在端點處環(huán)繞的值,例如相角,風向或一天中的時間。
 定性(Qualitative):常是雜色,用來表示沒有排序或關系的信息。
 雜色(Miscellaneous):一些在特定場景使用的雜色組合,如彩虹,海洋,地形等。
 以下官網(wǎng)頁面可以查詢上述五種colormap的字符串表示和顏色圖的對應關系
 https://matplotlib.org/stable/tutorials/colors/colormaps.html。
總結
以上就是今天要講的內(nèi)容,本文介紹了matplotlib中樣式和顏色的使用,介紹了四種matplotlib的繪圖樣式和六種matplotlib的色彩設置方法。
參考資料
[1].https://zhuanlan.zhihu.com/p/88892542
 [2].https://matplotlib.org/stable/tutorials/introductory/customizing.html?highlight=rcparams
 [3].https://matplotlib.org/stable/tutorials/colors/colors.html#sphx-glr-tutorials-colors-colors-py
總結
以上是生活随笔為你收集整理的Task 05:样式色彩秀芳华的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: cocos获取图片像素
- 下一篇: VIT Adapter【Vision T
