国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python常見庫matplotlib之多個子圖繪圖

這篇具有很好參考價值的文章主要介紹了Python常見庫matplotlib之多個子圖繪圖。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

系列文章目錄

第一章 Python常見庫matplotlib之畫圖文字的中文顯示
第二章 Python常見庫matplotlib之畫圖中各個模塊的含義及修改方式
第三章 Python常見庫matplotlib之多個子圖繪圖



前言

前兩章介紹了單張圖的繪圖操作,這一章介紹下在一張圖中畫多個圖的操作。我們把前一篇的程序稍微改動一下,上一篇中是將正弦函數(shù)和余弦函數(shù)畫在一張圖中,這一次我們將兩個曲線分別畫在不同的子圖中。
完整程序如下所示:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

# 指定字體
font_path = 'SIMSUN.TTC'
font_prop = fm.FontProperties(fname=font_path, size=12)

en_font_path = 'TIMES.TTF'
en_font_prop = fm.FontProperties(fname=en_font_path, size=12)

x = np.linspace(0, 2 * np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)

fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(8, 6))

ax1.plot(x, y1, label=u'正弦曲線', color='blue')
ax1.set_ylabel('正弦值', fontproperties=font_prop)
ax1.set_xlabel('橫軸', fontproperties=font_prop)
ax1.set_title('正弦函數(shù)', fontproperties=font_prop)

plt.subplots_adjust(hspace=0.6) # 調(diào)整子圖之間的距離

ax2.plot(x, y2, label=u'余弦曲線', color='red')
ax2.set_ylabel('余弦值', fontproperties=font_prop)
ax2.set_xlabel('橫軸', fontproperties=font_prop)
ax2.set_title('余弦函數(shù)', fontproperties=font_prop)

plt.suptitle('函數(shù)', fontproperties=font_prop)

ax1.tick_params(axis='both', which='major', labelsize=10, direction='in', bottom=True)
ax2.tick_params(axis='both', which='major', labelsize=10, direction='in')
# ax1.xaxis.set_tick_params(which='both', labelbottom=True)
# ax1.yaxis.set_tick_params(which='both', labelleft=True)
for tick in ax1.get_xticklabels():
    tick.set_fontproperties(en_font_prop)
for tick in ax1.get_yticklabels():
    tick.set_fontproperties(en_font_prop)
for tick in ax2.get_xticklabels():
    tick.set_fontproperties(en_font_prop)
for tick in ax2.get_yticklabels():
    tick.set_fontproperties(en_font_prop)

ax1.legend(loc='upper right', fontsize=12, edgecolor='black', fancybox=False, framealpha=1, prop=font_prop)
ax2.legend(loc='upper right', fontsize=12, edgecolor='black', fancybox=False, framealpha=1, prop=font_prop)

plt.show()

上述的代碼顯示結(jié)果是:
matplotlib 多個圖,# matplotlib庫的使用,matplotlib,python,開發(fā)語言
下面我們開始對代碼一段段分析。


一、多張子圖的參數(shù)設(shè)置

1. 子圖(subplots)

下面的代碼就是先進(jìn)行子圖設(shè)置。

fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 6))

第一個參數(shù)為2,表示子圖行的排布方式,為2行
第二個參數(shù)為1,表示子圖列的排布方式,為1列
figsize的參數(shù)為(10,6),表示最終圖的總像素數(shù)為1000*600。也就是說第一個值為寬,第二個值為高,分別乘以100后,即為生成最終圖的寬高。

除了上面描述的幾種參數(shù)以外,還有下面的可選參數(shù):

參數(shù) 含義
squeeze 是否壓縮返回的子圖網(wǎng)格數(shù)組,如果為 True,則當(dāng) nrows=1 且 ncols=1 時,返回的是單個 Axes 實例,而不是一個包含單個 Axes 實例的數(shù)組。
subplot_kw 傳遞給每個子圖的關(guān)鍵字參數(shù)字典。
gridspec_kw 傳遞給 GridSpec 的關(guān)鍵字參數(shù)字典。
sharex 是否共享 x 軸的限制范圍??蛇x值為 ‘none’、‘a(chǎn)ll’ 或 ‘row’。
sharey 是否共享 y 軸的限制范圍。可選值為 ‘none’、‘a(chǎn)ll’ 或 ‘col’。

2. 子圖y軸坐標(biāo)說明(set_ylabel),子圖x軸坐標(biāo)說明(set_xlabel),設(shè)置子圖標(biāo)題(set_title)

與單一圖像不同的是,有子圖的情況下,我們對子圖設(shè)置坐標(biāo)名稱和子圖名稱時調(diào)用的名字前面要加上set_

ax1.plot(x, y1, label=u'正弦曲線', color='blue')
ax1.set_ylabel('正弦值', fontproperties=font_prop)
ax1.set_xlabel('橫軸', fontproperties=font_prop)
ax1.set_title('正弦函數(shù)', fontproperties=font_prop)

可以設(shè)置的參數(shù)在下面的對應(yīng)列表中,上面程序中的'正弦值','橫軸'就是下面的參數(shù)label。

參數(shù) 含義
label 標(biāo)簽的文本內(nèi)容。
fontsize(size) 標(biāo)簽的字體大小。
fontweight 標(biāo)簽的字體粗細(xì),通常為 ‘bold’ 或 ‘normal’,是否有變化還要看字體文件本身是否支持
color 標(biāo)簽的字體顏色,可以是顏色名稱、十六進(jìn)制碼或 RGB 元組。
rotation 標(biāo)簽的旋轉(zhuǎn)角度,通常為 0(水平)或 90(垂直)。
va 標(biāo)簽的垂直對齊方式,可選值包括 ‘top’、‘center’ 或 ‘bottom’。
ha 標(biāo)簽的水平對齊方式,可選值包括 ‘center’、‘left’ 或 ‘right’

3. 圖片總標(biāo)題(suptitle)

設(shè)置圖的總名稱需要調(diào)用suptitle函數(shù)實現(xiàn)。suptitle是super title的縮寫,其實就是總標(biāo)題,下文參數(shù)表格中的超級標(biāo)題即總標(biāo)題。

plt.suptitle('函數(shù)', fontproperties=font_prop)

suptitle可以設(shè)置參數(shù)如下表所示,本例中‘函數(shù)’就是參數(shù)中的t。

參數(shù) 含義
t 超級標(biāo)題的文本內(nèi)容。
x 超級標(biāo)題的 x 坐標(biāo),通常為 0.5,即位于子圖網(wǎng)格的中央。這個值是一個百分比,左邊為0,右邊為1。0.5就是處于圖像正中間。
y 超級標(biāo)題的 y 坐標(biāo),默認(rèn)值為 0.98,即位于子圖網(wǎng)格的頂部。這個值是一個百分比,頂部為1,底部為0。0.98就是這個圖像高度的98%的位置。
fontsize(size) 超級標(biāo)題的字體大小。
fontweight 超級標(biāo)題的字體粗細(xì),通常為 ‘bold’ 或 ‘normal’。
color 超級標(biāo)題的字體顏色,可以是顏色名稱、十六進(jìn)制碼或 RGB 元組。
ha 超級標(biāo)題的水平對齊方式,可選值包括 ‘center’、‘left’ 或 ‘right’。
va 超級標(biāo)題的垂直對齊方式,可選值包括 ‘top’、‘center’ 或 ‘bottom’

4. 刻度參數(shù)設(shè)置(tick_parms)

ax1.tick_params(axis='both', which='major', labelsize=10, direction='in', bottom=True)
ax2.tick_params(axis='both', which='major', labelsize=10, direction='in')

常見的使用到的參數(shù)如下表所示

參數(shù) 含義
axis 指定要設(shè)置哪個坐標(biāo)軸的刻度線和標(biāo)簽屬性,可選值為 ‘x’、‘y’ 或 ‘both’
which 指定要設(shè)置哪些刻度線和標(biāo)簽屬性,可選值為 ‘major’(主刻度線和標(biāo)簽)、‘minor’(次刻度線和標(biāo)簽)或 ‘both’(主刻度線和標(biāo)簽以及次刻度線和標(biāo)簽)
direction 指定刻度線的方向,可選值為 ‘in’(向內(nèi))、‘out’(向外)或 ‘inout’(內(nèi)外均有)
length 指定刻度線的長度(單位為點)
width 指定刻度線的寬度(單位為點)
color 指定刻度線和標(biāo)簽的顏色
pad 指定刻度標(biāo)簽與刻度線之間的間距(單位為點)
labelsize 指定刻度標(biāo)簽的字號大小(單位為點)
labelcolor 指定刻度標(biāo)簽的顏色
bottom、top、left、right 分別指定四個邊框上的刻度線和標(biāo)簽屬性,這些值都是布爾屬性,默認(rèn)bottom和left是True,top和right是False

把上面的tick_params中的參數(shù)修改下,添加下表中的一些參數(shù),如下面所示

ax1.tick_params(axis='both', which='major', labelsize=10, direction='in', width=5, pad=10, top=True, left=False, right=True, labelcolor='green')

顯示出的圖就變了,我是隨便加了些,內(nèi)容反而顯的雜亂了,其目的主要是為了測試。
matplotlib 多個圖,# matplotlib庫的使用,matplotlib,python,開發(fā)語言

5. 刻度標(biāo)簽的字體(get_xticklabels)(set_fontproperties)

關(guān)于刻度標(biāo)簽的很多參數(shù),在tick_params中其實就可以設(shè)置了,比如說color,pad,labelsize,labelcolor。但唯獨這個字體的格式的設(shè)置比較特殊,需要按下面的代碼進(jìn)行修改

for tick in ax1.get_xticklabels():
    tick.set_fontproperties(en_font_prop)
for tick in ax1.get_yticklabels():
    tick.set_fontproperties(en_font_prop)
for tick in ax2.get_xticklabels():
    tick.set_fontproperties(en_font_prop)
for tick in ax2.get_yticklabels():
    tick.set_fontproperties(en_font_prop)

上面的代碼實現(xiàn)的是對子圖1和子圖2的x軸刻度標(biāo)簽和y軸刻度標(biāo)簽的修改,總共要做四次,修改成新羅馬體。
get_xticklabels 是 Matplotlib 中用于獲取 x 軸刻度標(biāo)簽的方法。這個方法沒有參數(shù)可以設(shè)置,它返回的是一個包含 Text 對象的列表,每個 Text 對象代表一個 x 軸刻度標(biāo)簽,可以通過調(diào)用 Text 對象的方法不僅可以用來設(shè)置刻度標(biāo)簽的字體,還可以設(shè)置刻度標(biāo)簽的屬性,例如字體大小、顏色、旋轉(zhuǎn)角度等,等于是通過for循環(huán)遍歷來一個個設(shè)置刻度標(biāo)簽。

以下是一些常用的 Text 對象方法及其含義:

對象方法 含義
set_text(text) 設(shè)置刻度標(biāo)簽的文本內(nèi)容。
set_fontsize(size) 設(shè)置刻度標(biāo)簽的字號大小。
set_color(color) 設(shè)置刻度標(biāo)簽的顏色。
set_rotation(angle) 設(shè)置刻度標(biāo)簽的旋轉(zhuǎn)角度(單位為度)。
set_ha(ha) 設(shè)置刻度標(biāo)簽的水平對齊方式,可選值為 ‘left’、‘center’ 或 ‘right’。
set_va(va) 設(shè)置刻度標(biāo)簽的垂直對齊方式,可選值為 ‘top’、‘center’ 或 ‘bottom’。

總結(jié)

本章節(jié)主要介紹了子圖繪圖中常見的幾個參數(shù)的設(shè)置,與單一圖所使用的函數(shù)是不同的,使用者需要注意。文章來源地址http://www.zghlxwxcb.cn/news/detail-741200.html

到了這里,關(guān)于Python常見庫matplotlib之多個子圖繪圖的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Visual Studio部署matplotlib繪圖庫的C++版本

    Visual Studio部署matplotlib繪圖庫的C++版本

    ??本文介紹在 Visual Studio 軟件中配置、編譯 C++ 環(huán)境下 matplotlibcpp 庫的詳細(xì)方法。 ?? matplotlibcpp 庫是一個 C++ 環(huán)境下的繪圖工具,其通過調(diào)用 Python 接口,實現(xiàn)在 C++ 代碼中通過 matplotlib 庫的命令繪制各類圖像。由于其需要調(diào)用 Python 接口,因此在配置 matplotlibcpp 庫時有些

    2024年02月19日
    瀏覽(23)
  • Python matplotlib 設(shè)置多子圖、子圖間距、邊距

    Python matplotlib 設(shè)置多子圖、子圖間距、邊距

    Python matplotlib 設(shè)置多子圖 設(shè)置多子圖縱向間距 設(shè)置多子圖橫向間距 設(shè)置外邊距 1. 方式一。設(shè)置一個 2*2 的相同尺寸子圖,統(tǒng)一添加。 可選參數(shù):sharex=True,sharey=False 共享X軸,不共享Y軸。 可選參數(shù):facecolor 背景填充色。 figsize 圖片的大小。 2. 方式二。設(shè)置一個 2*2 子圖,單

    2024年02月07日
    瀏覽(19)
  • Python matplotlib 設(shè)置多子圖、子圖間距、外邊距

    Python matplotlib 設(shè)置多子圖、子圖間距、外邊距

    Python matplotlib 設(shè)置多子圖 設(shè)置多子圖縱向間距 設(shè)置多子圖橫向間距 設(shè)置外邊距 1. 方式一。設(shè)置一個 2*2 的相同尺寸子圖,統(tǒng)一添加。 可選參數(shù):sharex=True,sharey=False 共享X軸,不共享Y軸。 可選參數(shù):facecolor 背景填充色。 figsize 圖片的大小。 2. 方式二。設(shè)置一個 2*2 子圖,單

    2024年01月16日
    瀏覽(15)
  • Python中Matplotlib庫的使用(三)—— Matplotlib繪制圖的常用類型

    Python中Matplotlib庫的使用(三)—— Matplotlib繪制圖的常用類型

    plot(x,y) plot(x, y) 函數(shù)用于繪制折線圖。折線圖是一種用來展示連續(xù)數(shù)據(jù)之間關(guān)系的圖表類型,適用于表示數(shù)據(jù)隨著一個或多個變量的變化而變化的情況。 具體來說, plot(x, y) 函數(shù)接受兩個參數(shù): x :表示X軸上的數(shù)據(jù)點的值,通常是一個數(shù)組或列表,表示自變量的取值。 y :

    2024年02月03日
    瀏覽(20)
  • 【Python數(shù)據(jù)可視化】matplotlib之設(shè)置子圖:繪制子圖、子圖共享x軸坐標(biāo)、調(diào)整子圖間距、設(shè)置圖片大小

    【Python數(shù)據(jù)可視化】matplotlib之設(shè)置子圖:繪制子圖、子圖共享x軸坐標(biāo)、調(diào)整子圖間距、設(shè)置圖片大小

    文章傳送門 Python 數(shù)據(jù)可視化 matplotlib之繪制常用圖形:折線圖、柱狀圖(條形圖)、餅圖和直方圖 matplotlib之設(shè)置坐標(biāo):添加坐標(biāo)軸名字、設(shè)置坐標(biāo)范圍、設(shè)置主次刻度、坐標(biāo)軸文字旋轉(zhuǎn)并標(biāo)出坐標(biāo)值 matplotlib之增加圖形內(nèi)容:設(shè)置圖例、設(shè)置中文標(biāo)題、設(shè)置網(wǎng)格效果 matplo

    2024年01月18日
    瀏覽(23)
  • 【100天精通Python】Day63:Python可視化_Matplotlib繪制子圖,子圖網(wǎng)格布局屬性設(shè)置等示例+代碼

    【100天精通Python】Day63:Python可視化_Matplotlib繪制子圖,子圖網(wǎng)格布局屬性設(shè)置等示例+代碼

    ?目錄 1 基本子圖繪制示例 2 子圖網(wǎng)格布局 3 調(diào)整子圖的尺寸 4 多行多列的子圖布局 5 子圖之間的共享軸 6 繪制多個子圖類型 7 實戰(zhàn): 繪制一個大圖,里面包含6個不同類別的子圖,不均勻布局。 繪制子圖(subplots) 是在Matplotlib中創(chuàng)建多個子圖的常見任務(wù)。通過子圖,您可以

    2024年02月05日
    瀏覽(32)
  • python數(shù)據(jù)可視化玩轉(zhuǎn)Matplotlib subplot子圖操作,四個子圖(一包四),三個子圖,子圖拉伸

    python數(shù)據(jù)可視化玩轉(zhuǎn)Matplotlib subplot子圖操作,四個子圖(一包四),三個子圖,子圖拉伸

    目錄 一、創(chuàng)建子圖 1.1 下圖是繪制的子圖: 1.2 代碼釋義: 二、繪制子圖 2.1 代碼引入 2.2 圖形繪制 三、子圖布局 3.1 子圖布局說明 四、子圖大小 4.1 子圖大小調(diào)整 五、子圖間距 5.1 子圖代碼調(diào)整 六、子圖位置 6.1 代碼引入 6.2 完整代碼 6.3 完整代碼 總結(jié) 大錘愛編程的博客_C

    2023年04月10日
    瀏覽(23)
  • 【Python】在同一圖形中更加優(yōu)雅地繪制多個子圖

    【Python】在同一圖形中更加優(yōu)雅地繪制多個子圖

    數(shù)據(jù)可視化非常重要,有一句俗語叫做 一圖頂千言 ,我相信好多小伙伴應(yīng)該都聽說過這句話;即使是有人第一次聽到,我想應(yīng)該也會覺得贊成,這足以說明數(shù)據(jù)可視化的重要性。我們在前一篇博客中,介紹了如何利用 subplot 來在一張子圖里繪制多個子圖,最近我又發(fā)現(xiàn)了一

    2024年02月11日
    瀏覽(15)
  • 使用Python中的matplotlib將多個圖片顯示到一張圖內(nèi)

    使用Python中的matplotlib將多個圖片顯示到一張圖內(nèi)

    在我們寫論文或是匯報時,經(jīng)常需要整合所得到的可視化數(shù)據(jù)結(jié)果,插入我們的論文中。如下所示的情況,我們需要將四個相關(guān)的彈性模量預(yù)測結(jié)果在一張圖里展示。 使用matplotlib庫中的子圖(subplot)功能可以輕松而高效地實現(xiàn)這一過程,避免繁瑣地手動調(diào)節(jié)。 具體代碼如下,

    2024年02月06日
    瀏覽(27)
  • 數(shù)據(jù)可視化(六)多個子圖及seaborn使用

    數(shù)據(jù)可視化(六)多個子圖及seaborn使用

    1.多個子圖繪制 2. 3.seaborn使用,首先安裝。如果在pycharm中安裝報錯,先安裝Scipy ?

    2024年02月13日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包