2009-07-29 17 views
7

Tworzę całkiem spore wykresy, a spacje na granicy zajmują dużo pikseli, które będą lepiej wykorzystane przez dane. Wydaje się, że granica rośnie wraz z rozwojem wykresu.Jak ograniczyć rozmiar ramki na wykresie matplotlib?

Oto wnętrzności mojego kodu graficznego:

 import matplotlib 
     from pylab import figure 

     fig = figure() 
     ax = fig.add_subplot(111) 
     ax.plot_date((dates, dates), (highs, lows), '-', color='black') 
     ax.plot_date(dates, closes, '-', marker='_', color='black') 

     ax.set_title('Title') 
     ax.grid(True) 
     fig.set_figheight(96) 
     fig.set_figwidth(24) 

Czy istnieje sposób, aby zmniejszyć rozmiar granicy? Może miejsce, które pozwoli mi utrzymać granicę na stałym poziomie 2 cali?

Odpowiedz

6

Ponieważ wygląda na to, Używając tylko pojedynczego podpunktu, możesz pominąć add_subplot i przejść bezpośrednio do add_axes. Umożliwi to podanie wielkości osi (we współrzędnych względnych), dzięki czemu można go powiększyć na tyle, na ile chcesz. W twoim przypadku oznaczałoby to Twój kod będzie wyglądać

import matplotlib.pyplot as plt 

    fig = plt.figure() 

    # add_axes takes [left, bottom, width, height] 
    border_width = 0.05 
    ax_size = [0+border_width, 0+border_width, 
       1-2*border_width, 1-2*border-width] 
    ax = fig.add_axes(ax_size) 
    ax.plot_date((dates, dates), (highs, lows), '-', color='black') 
    ax.plot_date(dates, closes, '-', marker='_', color='black') 

    ax.set_title('Title') 
    ax.grid(True) 
    fig.set_figheight(96) 
    fig.set_figwidth(24) 

Jeśli chcesz, możesz nawet umieścić parametry do set_figheight/set_figwidth bezpośrednio w zaproszeniu figure().

5

Spróbuj subplots_adjust API:

subplots_adjust (* args, ** kwargs)

fig.subplots_adjust (lewa = None, na dole = None, prawo = None, wspace = None, hspace = Brak)

Aktualizacja na SubplotParams z kwargs (zalegających RC gdzie brak) i aktualizować lokalizacje subplot

+2

Czy możesz podać przykład użycia w tym przypadku? –