2012-05-28 58 views
12

下面是一個簡單的情節:如何禁用Matplotlib中日誌圖的次要勾號?

enter image description here

1)如何禁用蜱? 2)如何減少他們的數量?

這裏是一個示例代碼:

from pylab import * 
import numpy as np 

x = [5e-05, 5e-06, 5e-07, 5e-08, 5e-09, 5e-10] 
y = [-13, 14, 100, 120, 105, 93] 

def myfunc(x,p): 
    sl,yt,yb,ec=p  
    y = yb + (yt-yb)/(1+np.power(10, sl*(np.log10(x)-np.log10(ec)))) 
    return y 

xp = np.power(10, np.linspace(np.log10(min(x)/10), np.log10(max(x)*10), 100)) 

pxp=myfunc(xp, [1,100,0,1e-6]) 
subplot(111,axisbg="#dfdfdf") 
plt.plot(x, y, '.', xp, pxp, 'g-', linewidth=1) 
plt.xscale('log') 

plt.grid(True,ls="-", linewidth=0.4, color="#ffffff", alpha=0.5) 


plt.draw() 
plt.show() 

主要生產: enter image description here

回答

15
plt.minorticks_off() 

打開時間關閉!

要更改它們的位置/位置,可以使用subsx參數。像這樣:

plt.xscale('log', subsx=[2, 3, 4, 5, 6, 7, 8, 9]) 

docs

subsx/subsy:如果將每個主刻度之間的subticks。 應該是一個整數序列。例如,在log10等級中:[2, 3,4,5,6,7,8,9]

將在每個主要 刻度之間放置8個對數間隔的次要刻度。

+2

好了,這是我不能很好地使用matplotlib的文檔的原因之一。一個巨大的幫助文件沒有分離。我仍然無法找到該功能的文檔。 非常感謝! –

+0

@Danial Tz - 是的文件量是瘋了! – fraxel

1
from pylab import * 
import numpy as np 


x = [5e-05, 5e-06, 5e-07, 5e-08, 5e-09, 5e-10] 
y = [-13, 14, 100, 120, 105, 93] 

def myfunc(x,p): 
    sl,yt,yb,ec=p  
    y = yb + (yt-yb)/(1+np.power(10, sl*(np.log10(x)-np.log10(ec)))) 
    return y 

xp = np.power(10, np.linspace(np.log10(min(x)/10), np.log10(max(x)*10), 100)) 

pxp=myfunc(xp, [1,100,0,1e-6]) 
ax=subplot(111,axisbg="#dfdfdf") 
plt.plot(x, y, '.', xp, pxp, 'g-', linewidth=1) 
plt.xscale('log') 
plt.grid(True,ls="-", linewidth=0.4, color="#ffffff", alpha=0.5) 
plt.minorticks_off() # turns off minor ticks 

plt.draw() 
plt.show() 
6

調用plt.minorticks_off()將應用此當前軸。 (該功能實際上是一個包裝gca().minorticks_off()

您可以以同樣的方式,這也適用於對單個軸:

import matplotlib.pyplot as plt 
fig, ax = plt.subplots() 

ax.minorticks_off() 
+1

這個答案是唯一一個提到面向對象的方法。 –