Jak zmienić rozmiar rysunku narysowanego za pomocą matplotlib?
python
graph
matplotlib
plot
visualization
tatwright
źródło
źródło
plt.figure(figsize=(20,10))
fig, ax = plt.subplots(figsize=(20, 10))
fig = plt.gcf()
->fig.set_size_inches(11,8)
aby raz na zawsze uniknąć zamieszania.Odpowiedzi:
rysunek pokazuje podpis połączenia:
figure(figsize=(1,1))
utworzyłby obraz cal po calu, który byłby 80 na 80 pikseli, chyba że podasz inny argument dpi.źródło
show()
tworzysz wyskakujące okienko, musisz zadzwonićfigure(num=1,...)
przed wykreśleniem czegokolwiek - pyplot / pylab tworzy postać, gdy tylko coś narysujesz, i pojawia się rozmiar wyskakującego okienka do ustalenia w tym momencie.Jeśli masz już utworzoną figurę, możesz szybko to zrobić:
Aby propagować zmianę rozmiaru do istniejącego okna GUI, dodaj
forward=True
źródło
imshow
, teraz używam tego kodu zaraz po wyeliminowaniu przestrzeni wokół obszaru kreśleniaplt.subplots_adjust(left=0.0, right=1.0, bottom=0.0, top=1.0)
.fig.set_dpi(100)
.Wydaje się, że działają:
To sprawia, że szerokość figury wynosi 5 cali, a jej wysokość 10 cali .
Klasa Figure wykorzystuje tę wartość jako domyślną dla jednego z argumentów.
źródło
fig.set_size_inches(18.5, 10.5, forward=True)
pracowałUŻYWANIE plt.rcParams
Jest to również obejście na wypadek, gdybyś chciał zmienić rozmiar bez korzystania ze środowiska rysunkowego. Tak więc w przypadku używasz
plt.plot()
na przykład, można ustawić krotki z szerokości i wysokości.Jest to bardzo przydatne, gdy drukujesz w tekście (np. Z IPython Notebook). Jak zauważył @asamaier, lepiej nie umieszczać tego oświadczenia w tej samej komórce, co oświadczenia dotyczące importu.
Konwersja na cm
figsize
Krotka akceptuje cali więc jeśli chcesz, aby ustawić go w centymetrach trzeba podzielić je przez 2,54 rzucić okiem na to pytanie .źródło
plt.rcParams["figure.figsize"] = (20,3)
do dodatkowej komórki. Gdy wywołam go w tej samej komórce, co instrukcja importu, zostanie zignorowany.Wypróbuj prosty kod w następujący sposób:
Musisz ustawić rozmiar figury przed wydrukowaniem.
źródło
atplotlib.pyplot.figure
, czego inni nie mówią tak jasno. Próbuję takich rzeczy jakmatplotlib.figure
imatplotlib.figure.Figure
plt.figure(figsize=(1,1))
jest najważniejszym ruchem. Dziękuję Ci.Jeśli szukasz sposobu na zmianę wielkości figury w Pandach , możesz na przykład:
gdzie
df
jest ramka danych Pandas. Lub użyć istniejącej figury lub osiJeśli chcesz zmienić ustawienia domyślne, możesz wykonać następujące czynności:
źródło
Pierwszy link w Google dla
'matplotlib figure size'
to AdjustingImageSize ( pamięć podręczna Google strony ).Oto skrypt testowy z powyższej strony. Tworzy
test[1-3].png
pliki o różnych rozmiarach tego samego obrazu:Wynik:
Dwie notatki:
Komentarze modułu i rzeczywista wydajność różnią się.
Ta odpowiedź pozwala łatwo połączyć wszystkie trzy obrazy w jednym pliku obrazu, aby zobaczyć różnicę rozmiarów.
źródło
fig = plt.figure() default_size = fig.get_size_inches() fig.set_size_inches( (default_size[0]*2, default_size[1]*2) )
Możesz po prostu użyć (z matplotlib.figure.Figure ):
Począwszy od Matplotlib 2.0.0 zmiany w obszarze roboczym będą widoczne natychmiast, ponieważ
forward
słowo kluczowe jest domyślnie ustawione naTrue
.Jeśli chcesz zmienić szerokość lub wysokość zamiast obu, możesz użyć
fig.set_figwidth(val)
lubfig.set_figheight(val)
Będą one również natychmiast aktualizować twoje płótno, ale tylko w Matplotlib 2.2.0 i nowszych.
Dla starszych wersji
Musisz
forward=True
jawnie określić, aby na żywo aktualizować swoje płótno w wersjach starszych niż podane powyżej. Należy pamiętać, żeset_figwidth
iset_figheight
funkcje nie obsługująforward
parametru w wersjach starszych niż matplotlib 1.5.0.źródło
Możesz także użyć:
źródło
Spróbuj skomentować
fig = ...
linięźródło
Działa to dla mnie dobrze:
Może to również pomóc: http://matplotlib.1069221.n5.nabble.com/Resizing-figure-windows-td11424.html
źródło
Aby zwiększyć rozmiar twojej figury N razy, musisz wstawić ją tuż przed pl.show ():
Działa również dobrze z notebookiem ipython.
źródło
Ponieważ Matplotlib nie jest w stanie używać systemu metrycznego natywnie, jeśli chcesz określić rozmiar swojej postaci w rozsądnej jednostce długości, takiej jak centymetry, możesz wykonać następujące czynności (kod z gns-ank ):
Następnie możesz użyć:
źródło
Spowoduje to zmianę rozmiaru figury natychmiast po jej narysowaniu (przynajmniej przy użyciu Qt4Agg / TkAgg - ale nie MacOSX - z matplotlib 1.4.0):
źródło
Uogólnienie i uproszczenie odpowiedzi psihodelii. Jeśli chcesz zmienić aktualny rozmiar figury współczynnik
sizefactor
Po zmianie bieżącego rozmiaru może się zdarzyć, że konieczne będzie dostrojenie układu podplotu . Możesz to zrobić w graficznym oknie graficznym lub za pomocą polecenia subplots_adjust
Na przykład,
źródło
Inna opcja, aby użyć funkcji rc () w matplotlib (jednostka to cal)
źródło
Możesz bezpośrednio zmienić rozmiar figury za pomocą
źródło
pyplot
nie ma żadnej metody o nazwieset_figsize
.