dobre (darmowe) oprogramowanie do tworzenia zdjęć do opublikowania?

11

Obecnie produkuję obrazy 1d i 2d za pomocą Matlaba w celu porównania dokładności z danym modelem. Muszę porównać moje metody ze standardowym modelem Gaussa .wfn i zamierzam to zrobić, analizując gęstość cząsteczki, a także laplaciana.

Interesuje mnie tworzenie obrazów 2D różnic w przybliżeniu do przybliżenia .wfn (być może poprzez mapę konturową?), A także interesują mnie właściwości (gęstość, laplacian itp.) Wzdłuż ścieżki wiązania i bezpośredniej linii między dwoma atomami.

Jak już wspomniałem, obecnie używam Matlaba do tworzenia moich obrazów, chociaż te obrazy są głównie dla mnie i moich współpracowników. Nie wydają się być typami obrazów, które często widzę w artykułach i innych publikacjach.

Jakiego oprogramowania powinienem używać (lub czy używają inni) do tworzenia wykresów i obrazów o jakości publikacji?

drjrm3
źródło
TEXLATEX

Odpowiedzi:

14

Osobiście przeszedłem drogę z Gnuplot do Matplotlib z PGFPlotami jako krok pośredni.

Spróbuję wymienić wszystkie aspekty Matplotlib, które lubię.

  • Jest bardzo wszechstronny. Nie jesteś ograniczony do wykresów liniowych lub punktowych, możesz z łatwością wykonywać wykresy słupkowe, obrazy (wizualizacja matrycy!), Podstawowe wykresy 3D, a nawet niektóre animacje.

  • Możesz użyć Matplotlib jako GUI dla swoich aplikacji w Pythonie.

  • Obsługiwany jest LaTeX.
  • Obsługuje wiele formatów wyjściowych (spróbuj uzyskać bezbolesny plik PDF za pomocą Gnuplot).
  • Baza użytkowników Matplotlib jest szeroka. Dostajesz dość dużą pomoc w Internecie.
  • Jest dość łatwy do nauczenia się.
  • Będąc biblioteką Python, masz pod ręką moc Pythona (co oznacza na przykład, że możesz z łatwością ładować dane tekstowe lub HDF5 lub, korzystając z opakowań takich jak Cython / f2py, ładować dane binarne napisane przez skompilowane programy napisane w C / Fortan) .

Jednak zawsze lubiłem liczby, które bezproblemowo integrują się z dokumentami LaTeX. Tutaj w zasadzie PGFPlots przoduje. Jest jednak powolny i (w porównaniu do Matplotlib) ograniczony.

Właśnie dlatego wolę nowe rozwiązanie: (eksperymentalny) backend PGF dla Matplotlib. Korzystając z tego, same wykresy są tworzone przez Matplotlib, podczas gdy oś i etykiety są konfigurowane przez PGFPlots i ostatecznie rysowane przez LaTeX. Możesz użyć tego do wydruku PDF bez osadzania dokumentu LaTeX lub do wyjścia PGF, które możesz dołączyć do dokumentu LaTeX.

Mam wrażenie, że rozwiązanie opisałem powyżej jest rozwiązanie dla moich przypadków użycia (na razie).

AlexE
źródło
Matplotlib można zrobić, aby stworzyć piękne działki. Zobacz matplotlib.org/gallery.html
meawoppl
7

Często używam Matlaba, a następnie zapisuję wynik jako epsplik przez print -depsc2 -f1 fig. Zapisuje to rysunek 1 jako epsplik o nazwie fig.eps. Istnieje również Plot2Svg z wymiany plików Matlab, które można zapisać jako svg. Jest to naprawdę miłe, ponieważ możesz następnie otwierać pliki w Inkscapelub innym oprogramowaniu do grafiki wektorowej i edytować je.

Jeśli chcesz nauczyć się nowych narzędzi, istnieje również matplotlib, który jest w zasadzie pakietem Pythona. Nie używałem go osobiście, ale wielu moich znajomych korzysta z niego i zwykle produkuje naprawdę ładne wykresy. Możesz sprawdzić ich galerię.

Wreszcie, jeśli chcesz zapłacić za oprogramowanie, możesz skorzystać z TecPlot, ale będzie to kosztować rękę i nogę!

GradGuy
źródło
1
Przed użyciem TecPlot użyj Visit lub ParaView. Są równie potężne i bezpłatne. Mogą także tworzyć wizualizacje bardzo wysokiej jakości.
Wolfgang Bangerth
@Wolfgang - Z mojego doświadczenia wynika, że ​​TecPlot jest lepszy. Pozwala na zapisanie formatu wektorowego (Paraview nie) i tworzy znacznie ładniejsze wykresy wektorowe.
akid
@akid: Muszę przyznać, że nie znam bardzo dobrze ParaView. Używam Visit, który tworzy bardzo ładne wykresy wektorowe. Nie znam jednak formatów wektorowych. Może jednak zapisywać wykresy w wysokiej rozdzielczości.
Wolfgang Bangerth,
7

Jeśli chcesz przezwyciężyć krzywą uczenia się Gnuplot , możesz za jego pomocą generować dane najwyższej jakości (jak na przykład w http://www.gnuplotting.org/ ). W szczególności polecam użycie terminala epslatex, ponieważ pozwala on używać LaTeXa do renderowania całego tekstu na rycinie (w tym wszelkich zapisów matematycznych, które możesz chcieć wprowadzić).

Jeśli chcesz trzymać się MATLAB, możesz spróbować matlab2tikz . Jest to skrypt konwertujący dane MATLAB na ilustracje Tikz .

Juan M. Bello-Rivas
źródło