欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)對(duì)數(shù)坐標(biāo)系繪制與自定義映射

 更新時(shí)間:2023年08月02日 08:38:58   作者:微小冷  
這篇文章主要為大家學(xué)習(xí)介紹了如何利用Python實(shí)現(xiàn)對(duì)數(shù)坐標(biāo)系繪制與坐標(biāo)自定義映射,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下

對(duì)數(shù)坐標(biāo)系

在實(shí)際繪圖時(shí),如果x,y這兩軸的數(shù)據(jù)變化速率相差過(guò)多,線性的坐標(biāo)映射將無(wú)法展示圖形變化的細(xì)節(jié),就需要更改坐標(biāo)系的數(shù)字映射邏輯,以獲得更具細(xì)節(jié)的圖像。

在matplotlib繪圖時(shí),通過(guò)set_xscale和set_yscale這兩個(gè)函數(shù),可以輕松對(duì)坐標(biāo)系進(jìn)行坐標(biāo)放縮,并且提供了4個(gè)基礎(chǔ)的放縮模板,分別是’linear’, ‘log’, ‘symlog’, ‘logit’。

import numpy as np
import matplotlib.pyplot as plt
xs = np.linspace(-5,5,1000)
labels = ['linear', 'log', 'symlog', 'logit']
fig = plt.figure()
for i,L in enumerate(labels, 1):
    ax = fig.add_subplot(2,2,i)
    ax.plot(xs, np.tan(xs))
    ax.plot(xs, np.exp(xs))
    ax.set_yscale(L)
    ax.set_title(L)
    ax.grid()
plt.tight_layout()
plt.show()

從其y軸坐標(biāo)可以看出,linear就是最常見(jiàn)的線性映射;log是對(duì)數(shù)坐標(biāo);symlog是“雙”對(duì)數(shù)坐標(biāo);logit則是中間大、兩端小的對(duì)數(shù)映射。

所以,在log圖中,由于對(duì)數(shù)映射是非對(duì)稱的,其y軸坐標(biāo)從小到大依次是0.01,0.1,1,10,100,所以 盡管tanx本應(yīng)上下對(duì)稱,但下方卻直接超出了坐標(biāo)軸給定的范圍。

自定義映射

set_xscale和set_yscale這兩個(gè)函數(shù),除了支持matplotlib實(shí)現(xiàn)好的字符串標(biāo)識(shí)之外,還支持自定義函數(shù)映射。例如,想把y軸映射為根號(hào)y ?,則需要定義兩個(gè)函數(shù),分別用于坐標(biāo)系映射和圖像映射,具體代碼如下

forward = lambda x : x**(1/2)
inverse = lambda x : x**2
fig, ax = plt.subplots()
xs = np.linspace(0,4,100)
ax.plot(xs, np.exp(xs))
ax.set_yscale('function', functions=(forward, inverse))
ax.set_title('function: $x^{1/2}$')
ax.grid()
plt.tight_layout()
plt.show()

繪圖結(jié)果如下

可以看到,y軸方向等間隔的刻度,其映射的長(zhǎng)度是依次減半的。10到20在y向的長(zhǎng)度,差不多是0到10的二分之一。

對(duì)數(shù)坐標(biāo)圖

雖然上面的例程均通過(guò)plot圖來(lái)演示,但set_xscale和set_yscale其實(shí)適用于各種圖像。而針對(duì)折線圖的對(duì)數(shù)坐標(biāo)圖,matplotlib已經(jīng)實(shí)現(xiàn)了更加成熟的封裝,即semilogx, semilogy和loglog。

fig, (ax1, ax2, ax3) = plt.subplots(1,3, figsize=(8,3))
ax1.semilogx(t, np.sin(2 * np.pi * t))
ax1.set(title='semilogx')
ax1.grid()
ax2.semilogy(t, np.exp(-t / 5.0))
ax2.set(title='semilogy')
ax2.grid()
ax3.loglog(t, 20 * np.exp(-t / 10.0))
ax3.set(title='loglog')
ax3.grid()
plt.tight_layout()
plt.show()

結(jié)果為

其中,semilogx和semilogy顧名思義,分別是對(duì)x軸和y軸進(jìn)行坐標(biāo)映射,而log則對(duì)兩個(gè)軸都進(jìn)行了坐標(biāo)映射。

到此這篇關(guān)于Python實(shí)現(xiàn)對(duì)數(shù)坐標(biāo)系繪制與自定義映射的文章就介紹到這了,更多相關(guān)Python對(duì)數(shù)坐標(biāo)系內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python numpy linspace函數(shù)使用詳解

    python numpy linspace函數(shù)使用詳解

    本文介紹了Python Numpy庫(kù)中的linspace函數(shù),該函數(shù)用于生成均勻分布的數(shù)值序列,通過(guò)示例和詳細(xì)參數(shù)解釋,幫助讀者理解如何使用linspace函數(shù),最后,對(duì)比了linspace和arange函數(shù)之間的主要差異,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • 淺談python中的占位符

    淺談python中的占位符

    這篇文章主要介紹了淺談python中的占位符,分享了其簡(jiǎn)單實(shí)例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Python中Yield的基本用法

    Python中Yield的基本用法

    這篇文章主要給大家介紹了關(guān)于Python中Yield的基本用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • python實(shí)現(xiàn)兩個(gè)字典合并,兩個(gè)list合并

    python實(shí)現(xiàn)兩個(gè)字典合并,兩個(gè)list合并

    今天小編就為大家分享一篇python實(shí)現(xiàn)兩個(gè)字典合并,兩個(gè)list合并,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • tensorflow模型保存、加載之變量重命名實(shí)例

    tensorflow模型保存、加載之變量重命名實(shí)例

    今天小編就為大家分享一篇tensorflow模型保存、加載之變量重命名實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • 實(shí)時(shí)獲取Python的print輸出流方法

    實(shí)時(shí)獲取Python的print輸出流方法

    今天小編就為大家分享一篇實(shí)時(shí)獲取Python的print輸出流方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 詳解Python?flask的前后端交互

    詳解Python?flask的前后端交互

    這篇文章主要為大家詳細(xì)介紹了Python?flask的前后端交互,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • python算法演練_One Rule 算法(詳解)

    python算法演練_One Rule 算法(詳解)

    下面小編就為大家?guī)?lái)一篇python算法演練_One Rule 算法(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Python高效解析和操作XML/HTML的實(shí)用指南

    Python高效解析和操作XML/HTML的實(shí)用指南

    在?Python?生態(tài)系統(tǒng)中,lxml?是一個(gè)功能強(qiáng)大且廣泛使用的庫(kù),用于高效地解析和操作?XML?和?HTML?文檔,這篇文章從?lxml?的基礎(chǔ)安裝開(kāi)始,逐步深入講解如何解析文檔、提取數(shù)據(jù)、修改文檔結(jié)構(gòu),并涵蓋了處理大型文檔和使用命名空間等進(jìn)階操作,需要的朋友可以參考下
    2024-10-10
  • Django中的forms組件實(shí)例詳解

    Django中的forms組件實(shí)例詳解

    這篇文章主要介紹了Django的forms組件,本文通過(guò)實(shí)例代碼介紹了Django的forms組件,需要的朋友可以參考下
    2018-11-11

最新評(píng)論