2013-01-24 13 views
8

Często kiedy wykreślić w matplotlib, mam wykresy tak:Dodaj margines kiedy Działki prowadzony do krawędzi wykresu

frequency response running along top edge

Nie widać funkcję, ponieważ działa na krawędzi fabuła.

Czy istnieje jakiś sposób, aby automatycznie dodać pewien margines w tych przypadkach, tak że wyglądają tak:

frequency response with tiny amount of noise

+0

Ooh, możesz dodać niewielką ilość szumu, aby upewnić się, że zawsze jest nieco powyżej 0? Coś w stylu 'h + = randn (len (h)) * odstęp (abs (h)) * 100000'? – endolith

Odpowiedz

15

Można użyć ax.margins() ustawić margins. Przykład:

In [1]: fig, ax = plt.subplots() 

In [2]: ax.plot(np.arange(10), '-o') 
Out[2]: [<matplotlib.lines.Line2D at 0x302fb50>] 

without margin

In [1]: fig, ax = plt.subplots() 

In [2]: ax.margins(0.05) 

In [3]: ax.plot(np.arange(10), '-o') 
Out[3]: [<matplotlib.lines.Line2D at 0x302fb50>] 

with margin

Można również ustawić tylko x lub y, margines. Jednak nie jest to opcja matplotlibrc, dzięki czemu możesz po prostu ustawić ją jako domyślną (więc nie jest w pełni automatycznie). Otworzyłem github issue, aby poprosić o to.

Powiązane problemy