2013-03-22 5 views
9

Używam programu Pythona do produkcji niektórych danych, wykreślając dane za pomocą matplotlib.pyplot, a następnie wyświetlając rysunek w pliku lateksu.Jak poprawić jakość obrazu matplotlib?

Obecnie zapisuję tę liczbę jako plik .png, ale jakość obrazu nie jest duża. Próbowałem zmienić DPI w matplotlib.pyplot.figure(dpi=200) itp., Ale wydaje się, że robi to niewielką różnicę. Próbowałem także używać formatów obrazu differnet, ale wszystkie wyglądają na wyblakłe i niezbyt ostre.

Czy ktoś jeszcze miał ten problem?

Każda pomoc będzie mile widziane

+3

Dlaczego nie używasz formatu grafiki wektorowej, takiego jak eps lub pdf? –

+0

[To pytanie] (http://stackoverflow.com/q/332289/875127) zajmuje się zmianą rozmiaru/dpi/rozdzielczości obrazu, ale wygląda na to, że próbowałeś tego. Sprawdź to w przypadku, gdy jest coś, co przegapiłeś. –

+2

Powinieneś zdecydowanie użyć formatu opartego na wektorze dla wykresów. Są dobrze obsługiwane przez LaTeX. –

Odpowiedz

10

można zapisywać obrazy w formacie wektorowym tak, że będą one skalowalne bez utraty jakości. Takimi formatami są PDF i EPS. Po prostu zmień rozszerzenie na .pdf lub .eps, a matplotlib zapisze poprawny format obrazu. Pamiętaj, że LaTeX lubi EPS i PDFLaTeX lubi pliki PDF. Chociaż najnowocześniejsze pliki wykonywalne LaTeX to PDFLaTeX w przebraniu i konwertują pliki EPS w locie (taki sam efekt, jak gdyby w preambule znalazł się pakiet epstopdf, który może nie działać tak dobrze, jak byś chciał).

Można też zwiększyć DPI, dużo. Są to numery należy pamiętać:

  • 300dpi: zwykły papier drukuje
  • 600dpi: profesjonalne wydruki papierowe. Większość komercyjnych drukarek biurowych osiąga to w swojej wydajności.
  • 1200dpi: profesjonalna jakość plakatu/broszury.

używam je w celu dostosowania jakości figur PNG w połączeniu z opcją figurefigsize „s, co pozwala na poprawnie skalowane tekstu i grafiki, jak poprawić jakość poprzez DPI.

+1

Lub alternatywnie wypróbuj pdf support http://matplotlib.org/users/pgf.html – pelson

+0

Dzięki, pliki .eps dają o wiele lepszą jakość w lyx – user1696811