最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

matplotlib多子圖實(shí)現(xiàn)共享坐標(biāo)軸的示例詳解

 更新時(shí)間:2024年02月01日 13:56:10   作者:微小冷  
這篇文章主要為大家詳細(xì)介紹了matplotlib繪制多子圖師如何實(shí)現(xiàn)共享坐標(biāo)軸,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

共用坐標(biāo)

當(dāng)一個(gè)圖像中有多個(gè)子圖時(shí),若這些子圖坐標(biāo)的含義相同,那么省略一些坐標(biāo)可以讓圖像更加簡(jiǎn)潔。在matplotlib中,通過(guò)sharex或者sharey可以起到共享x或y軸坐標(biāo)的作用。示例如下

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-5,5,100)
ys = [np.sin(x+i) for i in range(5)]

fig,axes = plt.subplots(2,2,sharex=True, sharey=True)

axes = axes.reshape(-1)
for i in range(4):
    axes[i].plot(x, ys[i])

plt.show()

效果如下,左上角的子圖沒(méi)有x刻度值,右下角則沒(méi)有y刻度值,右上角則什么坐標(biāo)軸也沒(méi)有。

添加共享軸

直接通過(guò)subplots來(lái)創(chuàng)建圖窗和坐標(biāo)軸,盡管用一行代碼解決了很多問(wèn)題,但相應(yīng)地也不夠靈活,而靈活添加坐標(biāo)軸的函數(shù)add_subplot也有sharex和sharey的參數(shù),但二者并不是布爾型參數(shù),而是需要輸入希望共享的坐標(biāo)軸。

fig = plt.figure()
ax3 = fig.add_subplot(223)
ax3.plot(x,ys[2])

ax1 = fig.add_subplot(221, sharex=ax3)
ax1.plot(x[:50],ys[0][:50])

ax4 = fig.add_subplot(224, sharey=ax3)
ax4.plot(x[50:],ys[3][50:])

ax2 = fig.add_subplot(222, sharex=ax4, sharey=ax1)
ax2.plot(x,ys[1])

plt.show()

效果如下,一方面,從各坐標(biāo)軸的坐標(biāo)來(lái)看,的確實(shí)現(xiàn)了坐標(biāo)共享,但并沒(méi)有像subplots中一樣,直接隱藏不必要的坐標(biāo)刻度。

為了達(dá)到和subplots相同的效果,需要手動(dòng)隱藏坐標(biāo)刻度,如將代碼改為下面的形式,即可實(shí)現(xiàn)目標(biāo)

fig = plt.figure()
ax3 = fig.add_subplot(223)
ax3.plot(x,ys[2])

ax1 = fig.add_subplot(221, sharex=ax3)
ax1.plot(x[:50],ys[0][:50])
ax1.tick_params(axis="x", labelbottom=False)

ax4 = fig.add_subplot(224, sharey=ax3)
ax4.plot(x[50:],ys[3][50:])
ax4.tick_params(axis="y", labelleft=False)

ax2 = fig.add_subplot(222, sharex=ax4, sharey=ax1)
ax2.plot(x,ys[1])
ax2.tick_params(axis="x", labelbottom=False)
ax2.tick_params(axis="y", labelleft=False)

plt.show()

灰度直方圖

上面示例中那幾個(gè)子圖,彼此之間區(qū)別不大,放在一張圖中是完全沒(méi)問(wèn)題的,但有些情況則不適合放在一張圖中,比如對(duì)于一張圖片來(lái)說(shuō),想知道其水平方向上灰度強(qiáng)度的分布,就比較適合坐標(biāo)。

path = r'lena.jpg'
img = plt.imread(path)

xs = [np.sum(img[:,:,i],0) for i in range(3)]
ys = [np.sum(img[:,:,i],1) for i in range(3)]

fig = plt.figure()
gs = fig.add_gridspec(2, 2,
    width_ratios=(4, 1),
    height_ratios=(1, 4))

ax = fig.add_subplot(gs[1, 0])
ax.imshow(img)        # 散點(diǎn)圖繪制
plt.axis('off')

xHist = fig.add_subplot(gs[0, 0], sharex=ax)
xHist.tick_params(axis="x", labelbottom=False)

yHist = fig.add_subplot(gs[1, 1], sharey=ax)
yHist.tick_params(axis="y", labelleft=False)

colors = 'rgb'
for i in range(3):
    xHist.plot(xs[i], color=colors[i])
    yHist.plot(ys[i], np.arange(len(ys[i])),color=colors[i])

plt.show()

由于lena圖有3個(gè)通道,所以在對(duì)每行或者每列像素求和時(shí),選擇分別對(duì)三個(gè)通道進(jìn)行操作。而后在繪制曲線時(shí),對(duì)三個(gè)通道的值也使用了不同的顏色方案。通過(guò)tick_params函數(shù),取消了上圖底部和右圖左側(cè)的坐標(biāo)刻度。

最后得圖如下

到此這篇關(guān)于matplotlib多子圖實(shí)現(xiàn)共享坐標(biāo)軸的示例詳解的文章就介紹到這了,更多相關(guān)matplotlib共享坐標(biāo)軸內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • jupyter lab文件導(dǎo)出/下載方式

    jupyter lab文件導(dǎo)出/下載方式

    這篇文章主要介紹了jupyter lab文件導(dǎo)出/下載方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • Python爬蟲(chóng)Requests庫(kù)的使用詳情

    Python爬蟲(chóng)Requests庫(kù)的使用詳情

    這篇文章主要介紹了Python爬蟲(chóng)Requests庫(kù)的使用詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • python3+PyQt5實(shí)現(xiàn)自定義分?jǐn)?shù)滑塊部件

    python3+PyQt5實(shí)現(xiàn)自定義分?jǐn)?shù)滑塊部件

    這篇文章主要為大家詳細(xì)介紹了python3+PyQt5實(shí)現(xiàn)自定義分?jǐn)?shù)滑塊部件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • pandas返回缺失值位置的方法實(shí)例教程

    pandas返回缺失值位置的方法實(shí)例教程

    當(dāng)我們用python進(jìn)行數(shù)據(jù)處理時(shí)會(huì)遇到很多缺失值,缺失值一般是由于我們所處理的數(shù)據(jù)本身的特性、當(dāng)初錄入的失誤或者其它原因?qū)е碌?下面這篇文章主要給大家介紹了關(guān)于pandas返回缺失值位置的方法,需要的朋友可以參考下
    2022-01-01
  • pycharm中python解釋器的配置方式

    pycharm中python解釋器的配置方式

    這篇文章主要介紹了pycharm中python解釋器的配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • python并發(fā)2之使用asyncio處理并發(fā)

    python并發(fā)2之使用asyncio處理并發(fā)

    本篇文章主要介紹了python并發(fā)2之使用asyncio處理并發(fā),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Python中實(shí)現(xiàn)JSON數(shù)據(jù)讀寫(xiě)的編程實(shí)戰(zhàn)指南

    Python中實(shí)現(xiàn)JSON數(shù)據(jù)讀寫(xiě)的編程實(shí)戰(zhàn)指南

    JSON 全稱是 JavaScript Object Notation 即 JavaScript 對(duì)象表示法,是一種輕量級(jí)的數(shù)據(jù)交換格式,下面就帶大家深入理解 JSON 的概念以及在 Python 中的讀寫(xiě)操作方法吧
    2025-11-11
  • 33個(gè)Python爬蟲(chóng)項(xiàng)目實(shí)戰(zhàn)(推薦)

    33個(gè)Python爬蟲(chóng)項(xiàng)目實(shí)戰(zhàn)(推薦)

    這篇文章主要介紹了33個(gè)Python爬蟲(chóng)項(xiàng)目實(shí)戰(zhàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • NumPy中np.c_ 和 np.r_ 的區(qū)別小結(jié)

    NumPy中np.c_ 和 np.r_ 的區(qū)別小結(jié)

    np.c_和?np.r_是NumPy庫(kù)中兩個(gè)非常有用的函數(shù),它們分別用于按列和按行拼接數(shù)組本文主要介紹了NumPy中np.c_ 和 np.r_ 的區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • 詳解Python self 參數(shù)

    詳解Python self 參數(shù)

    這篇文章主要介紹了Python self 參數(shù)詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論

内丘县| 凭祥市| 榆树市| 旌德县| 漳平市| 大庆市| 扶余县| 大埔县| 麻栗坡县| 金塔县| 海南省| 新巴尔虎右旗| 缙云县| 藁城市| 县级市| 邵武市| 星座| 曲靖市| 弋阳县| 界首市| 吉林市| 太保市| 德阳市| 延寿县| 彰化县| 东阿县| 界首市| 崇礼县| 鹿邑县| 德钦县| 锡林郭勒盟| 攀枝花市| 岱山县| 米易县| 宜都市| 温州市| 西乌珠穆沁旗| 灵丘县| 台州市| 桐柏县| 华坪县|