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

Python繪圖實(shí)現(xiàn)坐標(biāo)軸共享與復(fù)用詳解

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

多組數(shù)據(jù)

在一副圖像中表現(xiàn)多組數(shù)據(jù)時(shí),可能會(huì)遇到不同數(shù)據(jù)之間數(shù)據(jù)相差較大的情況,為此可在同一個(gè)坐標(biāo)框中設(shè)置不同的坐標(biāo)刻度,以實(shí)現(xiàn)下圖所示效果。為了實(shí)現(xiàn)這一功能,關(guān)鍵函數(shù)即為twinx。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(10)
y = 2**x
dy = np.diff(y)
sinx = np.sin(x)

fig, ax = plt.subplots()

p1 = ax.bar(x, y, color='blue')
ax.set(xlabel="x", ylabel="y")
ax.yaxis.label.set_color('blue')
ax.tick_params(axis='y', colors="blue")

ax2 = ax.twinx()
p2, = ax2.plot(x[1:], dy, "C1")
ax2.set(ylabel="diff(y)")
ax2.yaxis.label.set_color(p2.get_color())
ax2.tick_params(axis='y', colors=p2.get_color())

ax3 = ax.twinx()
ax3.spines.right.set_position(("axes", 1.2))
p3, = ax3.plot(x, sinx, "C2")
ax3.set(ylabel="sin(x)")
ax3.yaxis.label.set_color(p3.get_color())
ax3.tick_params(axis='y', colors=p3.get_color())

plt.tight_layout()
plt.show()

上述代碼中,一共有三組y yy軸,分別是主坐標(biāo)軸ax和后續(xù)創(chuàng)建的孿生坐標(biāo)軸ax2和ax3。

先看ax的設(shè)置,主要用到了三個(gè)方法,分別是

  • set 用于設(shè)置x , y x,yx,y的坐標(biāo)標(biāo)簽
  • yaxis.label.set_color,用于設(shè)置y yy軸坐標(biāo)標(biāo)簽的顏色
  • ax.tick_params 設(shè)置坐標(biāo)刻度的顏色,

ax2通過(guò)twinx函數(shù)新增了一個(gè)坐標(biāo)軸,其設(shè)置與ax基本相同,唯一的區(qū)別是,在設(shè)置顏色時(shí),采用了get_color()函數(shù),從而直接在圖像中提取顏色。

ax3與ax2還有一個(gè)差別,即在新建坐標(biāo)軸之后,調(diào)用ax3.spines.right.set_position,以設(shè)置刻度線的位置。

雙刻度

除了上面那種多組數(shù)據(jù)的情況,有時(shí)為了照顧不同文化的人群,即使對(duì)一組數(shù)據(jù)可能也要設(shè)計(jì)兩組坐標(biāo),并采取不同的單位。比如常見(jiàn)的角度制和弧度制,二者互有優(yōu)劣,那么在繪制圖像時(shí),可以分別將這兩種坐標(biāo)都表現(xiàn)出來(lái)。為此,可直接調(diào)用secondary_xaxis方法來(lái)實(shí)現(xiàn)

x = np.linspace(0,10,101)
y = np.sin(x)

ax = plt.subplot()
ax.plot(x,y)
ax.set_xlabel('angle [rad]')

secax = ax.secondary_xaxis('top', functions=(np.rad2deg, np.deg2rad))
secax.set_xlabel('angle [degrees]')
plt.show()

其第一個(gè)參數(shù)為坐標(biāo)位置,可選top, bottom, left和right。第二個(gè)參數(shù)為坐標(biāo)轉(zhuǎn)換函數(shù)。

效果如下

坐標(biāo)共享

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

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,ys[0])
ax1.tick_params(axis="x", labelbottom=False)

ax4 = fig.add_subplot(224, sharey=ax3)
ax4.plot(x,ys[3])
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()

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

相關(guān)文章

  • 詳解python列表(list)的使用技巧及高級(jí)操作

    詳解python列表(list)的使用技巧及高級(jí)操作

    這篇文章主要介紹了詳解python列表(list)的使用技巧及高級(jí)操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python協(xié)程的用法和例子詳解

    Python協(xié)程的用法和例子詳解

    這篇文章主要為大家詳細(xì)介紹了Python協(xié)程的用法和例子,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Python數(shù)據(jù)分析之缺失值檢測(cè)與處理詳解

    Python數(shù)據(jù)分析之缺失值檢測(cè)與處理詳解

    在實(shí)際的數(shù)據(jù)處理中,缺失值是普遍存在的,如何使用 Python 檢測(cè)和處理缺失值,就是本文要講的主要內(nèi)容。感興趣的同學(xué)可以關(guān)注一下
    2021-12-12
  • Python數(shù)據(jù)分析之使用matplotlib繪制折線圖、柱狀圖和柱線混合圖

    Python數(shù)據(jù)分析之使用matplotlib繪制折線圖、柱狀圖和柱線混合圖

    matplotlib是python的一個(gè)模塊,用于繪制各種圖形,今天介紹一下折線圖的繪制,下面這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)分析之使用matplotlib繪制折線圖、柱狀圖和柱線混合圖的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • 詳解Open Folder as PyCharm Project怎么添加的方法

    詳解Open Folder as PyCharm Project怎么添加的方法

    這篇文章主要介紹了詳解Open Folder as PyCharm Project怎么添加的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 使用豆瓣提供的國(guó)內(nèi)pypi源

    使用豆瓣提供的國(guó)內(nèi)pypi源

    PyPI(Python Package Index)是python官方的第三方庫(kù)的倉(cāng)庫(kù),所有人都可以下載第三方庫(kù)或上傳自己開(kāi)發(fā)的庫(kù)到PyPI。PyPI推薦使用pip包管理器來(lái)下載第三方庫(kù)。
    2017-07-07
  • python去除所有html標(biāo)簽的方法

    python去除所有html標(biāo)簽的方法

    這篇文章主要介紹了python去除所有html標(biāo)簽的方法,涉及Python正則替換的相關(guān)技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-05-05
  • python如何讀取和存儲(chǔ)dict()與.json格式文件

    python如何讀取和存儲(chǔ)dict()與.json格式文件

    這篇文章主要介紹了python如何讀取和存儲(chǔ)dict()與.json格式文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2022-06-06
  • Python自定義模塊的創(chuàng)建與使用

    Python自定義模塊的創(chuàng)建與使用

    這篇文章主要給大家介紹了關(guān)于Python自定義模塊創(chuàng)建與使用的相關(guān)資料,文中還給大家分享了python打包用戶自定義模塊的方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • 10?個(gè)Python統(tǒng)計(jì)分析常用的經(jīng)典腳本分享

    10?個(gè)Python統(tǒng)計(jì)分析常用的經(jīng)典腳本分享

    在數(shù)據(jù)科學(xué)和統(tǒng)計(jì)分析中,Python 是一門(mén)非常流行的語(yǔ)言,本文整理了 10 個(gè)經(jīng)典的 Python 腳本,用于執(zhí)行日常的統(tǒng)計(jì)分析任務(wù),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2026-01-01

最新評(píng)論

女性| 苍山县| 司法| 温宿县| 马尔康县| 昌邑市| 漾濞| 丹阳市| 梁平县| 二手房| 荆门市| 改则县| 清河县| 双鸭山市| 田东县| 武功县| 新绛县| 睢宁县| 连城县| 老河口市| 襄汾县| 东宁县| 常州市| 永安市| 饶河县| 北宁市| 大兴区| 盐山县| 洛南县| 富平县| 乐陵市| 塘沽区| 汉川市| 曲周县| 辰溪县| 颍上县| 墨玉县| 昌乐县| 舟曲县| 重庆市| 罗源县|