第4章 圖表樣式美化-0229_第1頁
第4章 圖表樣式美化-0229_第2頁
第4章 圖表樣式美化-0229_第3頁
第4章 圖表樣式美化-0229_第4頁
第4章 圖表樣式美化-0229_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第4章

圖表樣式的美化·使用顏色

·選擇線型·添加數(shù)據(jù)標記·設(shè)置字體·切換主題風(fēng)格·填充區(qū)域熟悉了解掌握掌握

學(xué)習(xí)目標熟悉默認圖表樣式,圖表樣式修改12掌握使用基礎(chǔ)顏色,使用顏色映射表掌握選擇線條類型,添加折線圖和散點圖的數(shù)據(jù)標記34掌握設(shè)置字體樣式,切換主題風(fēng)格,填充多邊形或曲線之間的區(qū)域目錄頁4.5設(shè)置字體4.1圖表樣式概述4.2使用顏色4.3選擇線型4.4添加數(shù)據(jù)標記目錄頁4.6切換主題風(fēng)格4.7填充區(qū)域4.8本章小結(jié)目錄頁4.5設(shè)置字體4.1圖表樣式概述4.2使用顏色4.3選擇線型4.4添加數(shù)據(jù)標記matplotlib在繪圖的過程中會讀取存儲在本地的配置文件matplotlibrc,通過matplotlibrc文件中的缺省配置信息指定圖表元素的默認樣式,完成圖表元素樣式的初始設(shè)置。通過rc_params()函數(shù)可以查看matplotlibrc文件中全部的配置項。4.1.1默認圖表樣式rc_params()函數(shù)返回一個RcParams對象。RcParams對象是一個字典對象,其中字典的鍵為由配置要素(如ytick)及其屬性(如right)組成的配置項,值為配置項的默認值。4.1.1默認圖表樣式配置項按照作用對象的不同主要分為10種配置要素:xtick和ytick(刻度)grid(網(wǎng)格)legend(圖例)figure(畫布)savefig(保存圖像)lines(線條)patch(圖形)font(字體)text(文本)axes(坐標系)4.1.1默認圖表樣式常用配置項matplotlib庫載入時會主動調(diào)用rc_params()函數(shù)獲取包含全部配置項的字典,并將該字典賦值給變量rcParams,以便用戶采用訪問字典rcParams的方式設(shè)置或獲取配置項。4.1.2圖表樣式修改matplotlib通過靈活地修改配置項以改變圖表的樣式,而不必拘泥于系統(tǒng)默認的配置。圖表的樣式可以通過兩種方式進行修改:局部修改和全局修改。局部修改的方式是指通過代碼動態(tài)地修改matplotlib配置項,此方式用于程序局部定制的需求。若希望局部修改圖表的樣式,可以通過以下任一種方式實現(xiàn)。4.1.2圖表樣式修改第1種—通過給繪圖函數(shù)或設(shè)置圖表元素函數(shù)的關(guān)鍵字參數(shù)傳值來修改圖表的樣式。第2種—通過“rcParams[配置項]”重新為配置項賦值來修改圖表的樣式。第3種—通過給rc()函數(shù)的關(guān)鍵字參數(shù)傳值來修改圖表的樣式。局部修改4.1.2圖表樣式修改局部修改第1種方式只能對某一圖表中指定元素的樣式進行修改,而第2種和第3種方式可以對整個py文件中指定元素的樣式進行修改。4.1.2圖表樣式修改全局修改的方式是指直接修改matplotlibrc文件的配置項,此方式用于滿足程序全局定制的需求,可以將指定的圖表樣式進行統(tǒng)一修改,無需每次在具體的程序中進行單獨修改。matplotlib使用matplotlibrc文件的路徑搜索順序:當(dāng)前工作路徑:程序運行的目錄。用戶配置路徑:通常位于HOME/.matplotlib/目錄中,可以通過環(huán)境變量MATPLOTLIBRC進行修改。系統(tǒng)配置路徑:位于matplotlib安裝路徑的mpl-data目錄中。全局修改4.1.2圖表樣式修改matplotlib可以使用matplotlib_fname()函數(shù)查看當(dāng)前使用的matplotlibrc文件所在的路徑。示例importmatplotlibmatplotlib.matplotlib_fname()

'C:\\Users\\admin\\Anaconda3\\lib\\site-packages\\matplotlib\\mpl-data\\matplotlibrc'

目錄頁4.5設(shè)置字體4.1圖表樣式概述4.2使用顏色4.3選擇線型4.4添加數(shù)據(jù)標記圖表在使用顏色時應(yīng)遵循一定的基本規(guī)則,既要避免使用過多的顏色,又要避免隨意使用顏色,否則會直接影響可視化的效果且不易讓人理解。4.2.1使用基礎(chǔ)顏色廣泛的色調(diào)和亮度范圍遵循自然的顏色模式遵循自然的顏色模式合理使用顏色的基本規(guī)則4.2.1使用基礎(chǔ)顏色matplotlib的基礎(chǔ)顏色主要有3種表示方式:單詞縮寫或單詞、十六進制或HTML模式、RGB模式。4.2.1使用基礎(chǔ)顏色matplotlib中支持使用單詞縮寫或單詞表示的8種顏色:青色、洋紅色、黃色、黑色、紅色、綠色、藍色、白色。單詞縮寫或單詞表示的顏色8種顏色的表示方式及說明4.2.1使用基礎(chǔ)顏色matplotlib支持使用十六進制或HTML/CSS的形式表示更多的顏色,它將這些顏色存儲在ames字典中,可通過訪問ames字典查看全部的顏色。十六進制/HTML模式表示的顏色示例forname,hexinames.items():

print(name,hex)

aliceblue#F0F8FFantiquewhite#FAEBD7...省略N行...yellow#FFFF00yellowgreen#9ACD324.2.1使用基礎(chǔ)顏色matplotlib支持使用RGB模式的三元組表示顏色,其中元組的第1個元素代表紅色值,第2個元素代表綠色值,第3個元素代表藍色值,且每個元素的取值范圍均是[0,1]。RGB模式表示的顏色示例color=(0.3,0.3,0.4)4.2.1使用基礎(chǔ)顏色以上3種方式表示的顏色都可以傳入matplotlib中帶有表示顏色的color或c參數(shù)的函數(shù)或方法中,從而為圖表的相應(yīng)元素設(shè)置顏色。第1種plt.plot([1,2,3],[3,4,5],color='g')

第2種plt.plot([1,2,3],[3,4,5],color='#2E8B57')

第3種plt.plot([1,2,3],[3,4,5],color=(0.0,0.5,0.0))

matplotlib中內(nèi)置了眾多預(yù)定義的顏色映射表,使用這些顏色表可以為用戶提供更多的顏色建議,節(jié)省大量的開發(fā)時間。通過colormaps()函數(shù)可以查看所有可用的顏色映射表。4.2.2使用顏色映射表4.2.2使用顏色映射表顏色映射表一般可以劃分為以下3類:

Sequential:表示同一顏色從低飽和度到高飽和度的單色顏色映射表。Diverging:表示顏色從中間的明亮色過渡到兩個不同顏色范圍方向的顏色映射表。Qualitative:表示可以輕易區(qū)分不同種類數(shù)據(jù)的顏色映射表。4.2.2使用顏色映射表開發(fā)人員可以自定義新的顏色映射表,再通過matplotlib.cm.register_cmap()函數(shù)將自定義的顏色映射表添加到matplotlib中。matplotlib主要有兩種使用顏色映射表的方式,第一種方式是在調(diào)用函數(shù)或方法繪制圖表或添加輔助元素時將顏色映射表傳遞給關(guān)鍵字參數(shù)cmap,第二種方式是直接調(diào)用set_cmap()函數(shù)進行設(shè)置。4.2.2使用顏色映射表第1種plt.scatter(x,y,c=np.random.rand(10),cmap=matplotlib.cm.jet)第2種plt.set_cmap(matplotlib.cm.jet)

高爾基說:“書籍是人類進步的階梯”。據(jù)統(tǒng)計韓國人的年均閱讀量為7本,日本人的年均閱讀量為40本,相比較而言,中國人的年均閱讀量為0.7本,還有很大的進步空間。4.2.3實例1:兩個地區(qū)對不同種類圖書的采購情況本實例要求根據(jù)下表的數(shù)據(jù),繪制反映地區(qū)1和地區(qū)2對各類圖書采購情況的堆積柱形圖,并分別使用“#FFCC00”和“#B0C4DE”這兩種顏色進行區(qū)分。4.2.3實例1:兩個地區(qū)對不同種類圖書的采購情況4.2.3實例1:兩個地區(qū)對不同種類圖書的采購情況由圖可知,明亮的顏色給人輕快的感覺,而不像之前的深色給人厚重的感覺。顏色為#B0C4DE顏色為#FFCC00目錄頁4.5設(shè)置字體4.1圖表樣式概述4.2使用顏色4.3選擇線型4.4添加數(shù)據(jù)標記圖表中每個線條均具有不同的含義,一般可以通過顏色、寬度、類型來區(qū)分線條,其中類型是區(qū)分線條的常見方式之一。matplotlib中內(nèi)置了4種線條的類型:短虛線、點劃線、長虛線和實線。4.3.1選擇線條的類型在matplotlib中,線條的類型默認是實線。在使用pyplot繪制折線圖、顯示網(wǎng)格或添加參考線時,可以將線型取值傳遞給linestyle或ls參數(shù),以選擇其它的線條類型。4.3.1選擇線條的類型示例plt.plot([1,2,3],[3,4,5],linestyle='--')plt.plot([1,2,3],[3,4,5],ls='--')4.3.2實例2:2017年7月與2019年7月國際外匯市場美元/人民幣匯率走勢匯率又稱外匯利率,指兩種貨幣之間兌換的比率,亦可視為一個國家的貨幣對另一種貨幣的價值。匯率會因諸多外界因素的影響而出現(xiàn)上下波動,從而產(chǎn)生貨幣貶值和貨幣升值的現(xiàn)象。4.3.2實例2:2017年7月與2019年7月國際外匯市場美元/人民幣匯率走勢本實例要求根據(jù)下表的數(shù)據(jù),將日期列的數(shù)據(jù)作為x軸的刻度范圍,將2017年匯率和2019年匯率兩列的數(shù)據(jù)作為y軸的數(shù)據(jù),繪制反映2017年7月與2019年7月美元/人民幣匯率走勢的折線圖,并使用實線和長虛線進行區(qū)分。4.3.2實例2:2017年7月與2019年7月國際外匯市場美元/人民幣匯率走勢由圖可知,2019年7月的匯率呈現(xiàn)較為平穩(wěn)的增長趨勢,2017年7月的匯率呈現(xiàn)下降趨勢。顏色為#8a2e76,寬度為2,類型為長虛線

顏色為#006374,,寬度為2,類型為實線

目錄頁4.5設(shè)置字體4.1圖表樣式概述4.2使用顏色4.3選擇線型4.4添加數(shù)據(jù)標記4.4.1添加折線圖或散點圖的數(shù)據(jù)標記什么是數(shù)據(jù)標記?4.4.1添加折線圖或散點圖的數(shù)據(jù)標記數(shù)據(jù)標記一般指代表單個數(shù)據(jù)的圓點或其它符號等,用于強數(shù)據(jù)點的位置,常見于折線圖和散點圖中。matplotlib中內(nèi)置了許多數(shù)據(jù)標記,使用這些數(shù)據(jù)標記可以便捷地為折線圖或散點圖標注數(shù)據(jù)點。數(shù)據(jù)標記可以分為填充型數(shù)據(jù)標記和非填充型數(shù)據(jù)標記。4.4.1添加折線圖或散點圖的數(shù)據(jù)標記填充型數(shù)據(jù)標記非填充型數(shù)據(jù)標記在使用pyplot的plot()或scatter()函數(shù)繪制折線圖或散點圖時,可以將標記取值傳遞給marker參數(shù),從而為折線圖或散點圖添加數(shù)據(jù)標記。4.4.1添加折線圖或散點圖的數(shù)據(jù)標記plt.plot([1,2,3],[3,4,5],marker='*')示例4.4.1添加折線圖或散點圖的數(shù)據(jù)標記還可以給plot()或scatter()函數(shù)的以下參數(shù)傳值來設(shè)置數(shù)據(jù)標記的屬性。

markeredgecolor或mec:表示數(shù)據(jù)標記的邊框顏色。

markeredgewidth或mew:表示數(shù)據(jù)標記的邊框?qū)挾取?/p>

markerfacecolor或mfc:表示數(shù)據(jù)標記的填充顏色。

markerfacecoloralt或mfcalt:表示數(shù)據(jù)標記備用的填充顏色。

markersize或ms:表示數(shù)據(jù)標記的大小。多學(xué)一招:matplotlib格式字符串matplotlib在繪制折線圖時,可以使用字符串分別為線條指定顏色、線型和數(shù)據(jù)標記這三種樣式,但每次都需要分別給參數(shù)color、linestyle、marker傳值進行一一設(shè)置,使得編寫的代碼過于繁瑣。為此,matplotlib提供了由顏色、標記、線型構(gòu)成的格式字符串。格式字符串是快速設(shè)置線條基本樣式的縮寫形式的字符串。多學(xué)一招:matplotlib格式字符串'[顏色][標記][線型]'語法以上格式的每個選項都是可選的,選項之間組合的順序也是可變的。顏色只能是字母縮寫方式表示的顏色。若格式字符串中只有顏色一個選項,可以使用十六進制、單詞拼寫等其它形式表示的顏色。pyplot的plot()函數(shù)的fmt參數(shù)可接收格式字符串,以便能同時為線條指定多種樣式,但該參數(shù)不支持以fmt為關(guān)鍵字的形式傳參,而支持以位置參數(shù)的形式傳遞即可。多學(xué)一招:matplotlib格式字符串plt.plot([1,2,3],[3,4,5],'mo--')示例4.4.2實例3:標記不同產(chǎn)品各季度的銷售額本實例要求根據(jù)下表的數(shù)據(jù),將季度列的數(shù)據(jù)作為x軸的刻度標簽,將產(chǎn)品A、產(chǎn)品B、產(chǎn)品C這三列的數(shù)據(jù)作為y軸的數(shù)據(jù),使用plot()函數(shù)繪制反映產(chǎn)品A、產(chǎn)品B和產(chǎn)品C各季度銷售額的折線圖,并使用不同的線型、顏色、標記進行區(qū)分。4.4.2實例3:標記不同產(chǎn)品各季度的銷售額由圖可知,產(chǎn)品A在各季度的銷售額都高于另兩個產(chǎn)品,產(chǎn)品C在各季度的銷售額都低于另兩個產(chǎn)品。標記為正菱形,線型為實線標記為正三角形,線型為短虛線標記為正方形,線型為長虛線目錄頁4.5設(shè)置字體4.1圖表樣式概述4.2使用顏色4.3選擇線型4.4添加數(shù)據(jù)標記4.5.1設(shè)置字體樣式不同的字體給人的直觀感受不同,例如,宋體給人雅觀、大氣的感覺;黑體給人厚重、搶眼的感覺。由于每種字體具有不同的特點、使用場景,因此合適的字體可以對圖表起到很好的修飾作用。英文注釋文本均使用Arial、Helvetica或TimesNewRoman字體。

合理使用字體的基本規(guī)則中文注釋文本均使用宋體或黑體,其中正文使用宋體,標題使用黑體。

圖表注釋文本的最佳字體大小為8磅。

字體的顏色與背景具有強對比度。4.5.1設(shè)置字體樣式matplotlib中文本是text模塊的Text類對象,可以通過之前介紹的text()、annotate()、title()等函數(shù)進行創(chuàng)建。Text類中提供了一系列設(shè)置字體樣式的屬性,包括字體類別、字體大小、字體風(fēng)格、字體角度等。左表中的屬性也可以作為text()、annotate()、title()函數(shù)的同名關(guān)鍵字參數(shù),以便用戶在創(chuàng)建文本的同時設(shè)置字體的樣式。4.5.2實例4:未來15天最高氣溫和最低氣溫(設(shè)置字體樣式)2.1.2節(jié)實例1的折線圖既沒有使用數(shù)據(jù)標記標注數(shù)據(jù)的位置,也沒有使用注釋文本標注具體的數(shù)值,影響用戶的閱讀體驗。4.5.2實例4:未來15天最高氣溫和最低氣溫(設(shè)置字體樣式)本實例要求對前面的折線圖進行調(diào)整,為該圖中的折線添加數(shù)據(jù)標記和注釋文本,并設(shè)置注釋文本的字體樣式。由圖可知,注釋文本的字號小于其它文本的字號,并未給用戶一種喧賓奪主的感覺。字體為SimHei,字號為8,類型為normal4.5.2實例4:未來15天最高氣溫和最低氣溫(設(shè)置字體樣式)目錄頁4.6切換主題風(fēng)格4.7填充區(qū)域4.8本章小結(jié)matplotlib.style模塊中內(nèi)置了一些圖表的主題風(fēng)格,通過切換不同的主題風(fēng)格以滿足用戶的不同需求。所有的主題風(fēng)格都存儲于matplotlib配置文件夾的stylelib目錄中,可以通過訪問available變量查看所有可用的主題風(fēng)格。4.6切換主題風(fēng)格4.6切換主題風(fēng)格使用matplotlib庫中的use()函數(shù)可以切換圖表的主題風(fēng)格。

use(style)以上函數(shù)的參數(shù)style表示圖表的主題風(fēng)格,它可以接收matplotlib中所有可用的主題風(fēng)格的字符串,也可以接收“default”來恢復(fù)默認的主題風(fēng)格。語法目錄頁4.6切換主題風(fēng)格4.7填充區(qū)域4.8本章小結(jié)4.7.1填充多邊形或曲線之間的區(qū)域matplotlib中提供了多個函數(shù)用于填充多邊形或區(qū)域,分別為fill()、fill_between()和fill_betweenx(),其中fill()函數(shù)用于填充多邊形,fill_between()或fill_betweenx()函數(shù)分別用于填充兩條水平曲線或垂直曲線之間的區(qū)域。4.7.1填充多邊形或曲線之間的區(qū)域fill()函數(shù)的語法格式如下所示:fill(*args,

data=None,

facecolor,edgecolor,linewidth,**kwargs)*args:表示x坐標、y坐標或顏色的序列。facecolor:表示填充的背景顏色。edgecolor:表示邊框

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論