Matplotlib Tips

Matplolib是最常用的Python數(shù)據(jù)繪圖工具庫,支持不同樣式數(shù)據(jù)的圖像繪制。本文介紹一些使用Matplotlib庫的注意事項,主要包括:

  • subplots
  • 布局調(diào)整
  • specgram(光譜圖)
  • pcolormesh
  • 樣式增強
Matplolib

subplots

subplots()是繪圖的開始,創(chuàng)建不同子圖的排列結(jié)構(gòu)。

如下:

import matplotlib.pyplot as plt

fig, axes = plt.subplots(nrows=2, ncols=2)
plt.show()

最終的圖像展示使用plt.show()方法。

返回:

  • fig:繪圖的底版,用于顯示整個背景輪廓,等同于plt.gcf();
  • axes:子圖的集合,通過下標選中單個子圖,如axes[0][0];

參數(shù):

  • nrowsncols:子圖排列的行和列;

非規(guī)則的排列,使用subplot2grid(),通過結(jié)構(gòu)shape位置loc排列子圖,如,排列5個子圖,上三下二結(jié)構(gòu):

ax1 = plt.subplot2grid(shape=(2, 6), loc=(0, 0), colspan=2)
ax2 = plt.subplot2grid((2, 6), (0, 2), colspan=2)
ax3 = plt.subplot2grid((2, 6), (0, 4), colspan=2)
ax4 = plt.subplot2grid((2, 6), (1, 1), colspan=2)
ax5 = plt.subplot2grid((2, 6), (1, 3), colspan=2)

布局調(diào)整

在排列子圖的過程中,可能出現(xiàn):

  • 坐標軸遮擋:使用tight_layout()設置間距,其中pad表示整體輪廓間距,w_pad表示子圖水平間距,h_pad表示子圖豎直間距;
  • 圖像密集:使用set_size_inches()設置圖像長寬的具體尺寸(英寸);

即:

plt.tight_layout(pad=0.4, w_pad=0.5, h_pad=1.0)
fig = plt.gcf()
fig.set_size_inches(10, 8)

這樣,子圖就可以優(yōu)雅地排列在一起了。

specgram

連續(xù)信號推薦使用specgram()展示,即光譜圖(spectrogram)。

參數(shù):

  • x:信號連續(xù)值列表;
  • Fs:信號幀率;

即:

axes[0, 0].specgram(x=y, Fs=sr)  # 光譜圖
axes[0, 0].set_title('std')

set_title()用于設置圖像的標題。

光譜圖

連續(xù)信號不推薦使用線圖展示,因為在信號中,一般含有幀率,即每秒信號數(shù),而使用線圖展示,就會忽略幀率信息,無法體現(xiàn)波形的相似性。

pcolormesh

二維特征推薦使用pcolormesh()展示。除此之外,相似的展示形式:

  • contourf:等高線,與pcolormesh類似,邊界較為模糊;
  • imshow:圖像模式,支持模糊處理,自適應寬高需要設置aspect的“auto”屬性;

axes[0, 0].pcolormesh(df1)
axes[0, 1].contourf(df2)
axes[1, 0].imshow(df2, interpolation='bicubic', aspect='auto')
axes[1, 1].axis('off')

axis('off')用于關(guān)閉子圖。

pcolormesh

二維特征不推薦使用散點圖,因為散點圖的展示區(qū)域較小,對比效果較差。

樣式增強

seaborn是Matplotlib的顏色和樣式擴展。

使用方式:在plt繪制之前,通過seaborn聲明其他的展示樣式。

import seaborn as sns

sns.set(style='ticks', palette='Set2')

歡迎Follow我的GitHubhttps://github.com/SpikeKing

By C. L. Wang @ 美圖云事業(yè)部

OK, that's all!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容