簡體   English   中英

Matplotlib Symlog線性區域

[英]Matplotlib symlog linear region

我在繪制在對數(或symlog )軸上變為零的線時遇到一些困難。 考慮以下簡單示例:

import numpy as np
import matplotlib.pylab as pl

pl.close('all')

z = np.linspace(0,1,20)
x = np.ones_like(z)
x[0] = 0

pl.figure()
pl.subplot(131)
pl.plot(x, z, '-x')
pl.xlim(-0.1,1.1)

pl.subplot(132)
pl.plot(x, z, '-x')
pl.yscale('log')
pl.xlim(-0.1,1.1)

pl.subplot(133)
pl.plot(x, z, '-x')
pl.yscale('symlog', linthresy=1e-2)
pl.xlim(-0.1,1.1)

在此處輸入圖片說明

首先,我感到驚訝的是,在法線log軸上繪制了標有紅叉的線段:該線段正上方的點(在y=0.05 )等於1,在y=0下方的點為零,並且可以繪制在對log軸上,那么為什么matplotlib會繪制此段? 這樣,該圖給人的印象是,在例如y=0.01x等於1,這是不正確的。

編輯semilogy確實放棄了標記的線段...)

其次,我試圖通過使用symlog軸(右面板),使用linthresy設置線性區域來解決此問題,但這種方法似乎不起作用(在這種情況下)。 這是否不應該創建諸如y = { 0, 10^-2, 10^-1, 10^0 }標簽的均勻間隔的y軸的東西?

我遇到了同樣的問題,直到我意識到關鍵字是linthreshy而不是linthresy

import numpy as np
import matplotlib.pylab as pl

pl.close('all')

z = np.linspace(0,1,20)
x = np.ones_like(z)
x[0] = 0

pl.figure()
pl.subplot(121)
pl.plot(x, z, '-x')
pl.yscale('symlog', linthresy=1e-2)
pl.xlim(-0.1,1.1)

pl.subplot(122)
pl.plot(x, z, '-x')
pl.yscale('symlog', linthreshy=1e-2)
pl.xlim(-0.1,1.1)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM