Jakie oprogramowanie i przepływ pracy jest zalecane do publikowania danych naukowych i wykresów?


40

Które oprogramowanie zapewnia dobry przepływ pracy - od zwykłego wydruku kilku punktów danych po tworzenie grafiki na poziomie publikacji ze szczegółowymi stylami, składem matematycznym i „profesjonalną jakością”?

Jest to trochę związane z pytaniem Davida ( jakie atrybuty czynią figurę profesjonalną jakością? ), Ale nie skupia się na atrybutach, ale na oprogramowaniu lub ogólnym przepływie pracy, aby się tam dostać. Mam powierzchowne doświadczenie z wieloma programami, Gnuplot, Origin, Matplotlib, TikZ / PGFplot, Qtiplot, ale analiza danych i ładne liczby w tym samym czasie wydają się raczej trudne.

Czy jest na to jakieś oprogramowanie, czy powinienem po prostu zagłębić się głębiej w jeden z pakietów?

Edycja: Mój obecny obieg pracy to mieszanka różnych składników, które mniej więcej współpracują ze sobą, ale w sumie nie jest tak naprawdę wydajne i myślę, że jest to typowe dla wielu naukowców z laboratorium uniwersyteckiego. Zazwyczaj jest to łańcuch rozpoczynający się od eksperymentu do publikacji w następujący sposób:

  1. Uzyskaj dane eksperymentalne (zwykle w formie ASCII, ale o innym układzie, np. Nagłówki, komentarze, liczba kolumn)
  2. Szybki wykres danych, aby sprawdzić, czy nic nie poszło źle w Origin, Gnuplot lub tajemnym programie fabularnym napisanym 20 lat temu.
  3. Bardziej szczegółowa analiza danych: odejmowanie wkładów tła, analiza zależności i korelacji, dopasowanie do modeli teoretycznych. Wielu naukowców korzysta z Origin do tego zadania, rośnie użycie Matlaba i Pythona / Scipy / Numpy.
  4. Tworzenie profesjonalnych postaci wymaga dostosowania się do wytycznych czasopisma, składu matematycznego i ogólnej edycji. W tej chwili używam do tego Origin, ale ma to kilka wad (po prostu spróbuj uzyskać szerokość linii dokładnie 0,5 punktu, nie jest to możliwe). Do łączenia / polerowania rysunków używam głównie programu Adobe Illustrator, ponieważ ładnie radzi sobie z eksportowaniem / eksportowaniem dokumentów PDF, ale wolałbym nie przechodzić przez dwa kroki dla każdego diagramu.

Dodałem przykład, jak może to wyglądać na końcu (ponieważ zostało to stworzone głównie przez ręczną zmianę czegokolwiek, jest bolesne, a wszystko, co zapewnia interfejs, na przykład do ustawienia szerokości linii dla wszystkich elementów, byłoby fajne):wprowadź opis zdjęcia tutaj


2
Być może powinieneś wyjaśnić swoje wymagania. W obecnej formie pytanie przyciąga dużą listę oprogramowania. Nikt nie opisuje szczegółowo zalet i wad systemów. Patrząc na to, nie pomogłoby mi wybrać jednego. Oczywiście całe techniczne oprogramowanie komputerowe, MATLAB, Mathematiac, Maple, wszystkie rozwiązania oparte na Python, R itp. Mają wiele narzędzi do tworzenia wykresów. Są też narzędzia GUI, takie jak Origin i xmgrace. Wybór najlepszego zależy od twoich potrzeb.
Szabolcs

@Szabolcs: Zgadzam się, że moje pytanie jest nieco ogólne. Mój przepływ pracy nie zawsze jest taki sam, ponieważ analizuję dane z różnych eksperymentów, dlatego starałem się, aby pytanie było nieco bardziej ogólne.
Alexander

Odpowiedzi:


31

Jeśli masz jakieś doświadczenie z Pythonem (lub nawet nie), polecam korzystanie z dostępnego oprogramowania naukowego Python ( SciPy , Pandas ) ...) razem z Matplotlib . Będąc środowiskiem programistycznym, masz pełną kontrolę nad przepływem danych, manipulacjami danymi i wykreślaniem. Możesz także użyć „pełnych aplikacji” Mayavi2 lub Veusz .


14
+1 dla Matplotlib. Oprócz wspomnianych punktów, możliwość korzystania z LaTeX-a w polach tekstowych daje ci „wymagane składanie matematyczne”.
Barron

jakieś zalecenia dla chaco entuzjastów?
pcr

1
Chaso jest super niesamowity dla interaktywnych fabuł. Zupełnie inne zwierzę IMHO.
meawoppl

2
Aby uzyskać natychmiastowe upiększenie Matplotlib, sprawdź dno morskie .
Christian Clason,


15

W oparciu o to, co mówisz, język skryptowy ogólnego przeznaczenia jest prawdopodobnie najlepszym wyborem, pod warunkiem, że ma on jakąś funkcję graficzną, do której można uzyskać dostęp (zarówno wbudowany, jak i importowany).

W tym duchu MATLAB będzie działał, chociaż będziesz musiał bawić się szerokościami, symbolami i osiami linii, aby uzyskać wykresy o jakości prezentacji. Biorąc pod uwagę twoje kryteria, powiedziałbym, że wielką słabością MATLAB jest szczegółowe skład matematyczny; MATLAB może używać niektórych etykiet TeX, ale są pewne polecenia LaTeX, których nie obsługuje, więc pamiętam, że musiałem cofnąć się i wyciąć i wkleić niektóre etykiety LaTeX z pliku PDF w programie Adobe Illustrator.

Python + NumPy będzie działał przy imporcie danych, ponieważ numpy.loadtxtsprawia , że importowanie danych tekstowych jest bezbolesne. W tym momencie możesz wybierać między matplotlib i Gnuplot (który ma interfejs Pythona za pośrednictwem Gnuplot.py ; brak aktywnego rozwoju interfejsu od 2008 roku, ale z drugiej strony, czy Gnuplot zmienia się jeszcze bardziej, nawet jeśli wciąż dodaje wydania? ). Owinięcie PyAsy MatthewEmmetta może również działać, w zależności od tego, co chcesz zrobić. Matplotlib ma świetne składanie matematyczne (jak zauważył Barron), a manipulacje danymi można wykonywać za pomocą NumPy, SciPy lub dowolnego innego pakietu Python, który chcesz rzucić na swoje dane.

Problem, który miałem sam z gnuplotem, polega na tym, że jest on naprawdę zbudowany tylko do kreślenia. Nie było dla mnie oczywiste, jak manipulować danymi w języku skryptowym gnuplot. Zasadniczo zrobiłem wszystkie moje operacje na danych wcześniej, zanim wysłałem je do tekstu, ponieważ nie mogłem wymyślić, jak to zrobić inaczej. Możesz użyć gnuplot do oceny formuł i wykonywania pewnych operacji, ale dla mnie Python ma dużo bardziej naturalną składnię i ma większą ogólną użyteczność niż gnuplot. Nie chcę uczyć się innego języka tylko po to, aby robić jedną rzecz, chyba że jest to naprawdę naturalny, łatwy do nauczenia się język. (Lub chyba, że ​​jestem zmuszony.)

Tecplot 360 ma podobny problem. Tecplot 360 produkuje niesamowite wykresy, szczególnie w 3D. Są rzeczy, które możesz zrobić za pomocą Tecplot 360 przy użyciu stosunkowo łatwego do nauczenia GUI, który prawdopodobnie byłby trudny do wykonania w innym pakiecie drukowania. Ostatni raz korzystałem z Tecplot 6 lub 7 lat temu; najwyraźniej od tego czasu dodali wiele funkcji. Manipulowanie danymi może odbywać się poprzez indeksowanie, dzielenie lub tworzenie stref. Ilości pochodne można obliczyć za pomocą równań. Możesz także wykonać transformację Fouriera swoich danych, wykonać interpolację (lub kriging) i wykonać wiele innych czynności. Nie jest jasne, jak wykonywać matematyczne składanie. Myślę, że możesz zhakować dane wyjściowe HTML z Tecplot i dodać MathJax lub MathML? Moim zdaniem wady związane z Tecplot polegają na tym, że nie jest on darmowy (co oznacza, że ​​jako narzędzie, możesz nie być w stanie zabrać go ze sobą do pracy), niepewne matematyczne składanie, a to, że skryptowanie złożonych manipulacji danymi wymaga nauki języka makr Tecplot. Główną zaletą jest to, że jego możliwości drukowania 3D znacznie przewyższają matplotlib i MATLAB. Możliwe jest grupowanie danych wydruku przy użyciu języka makr / skryptów Tecplot oraz wywoływanie zewnętrznych skryptów Pythona (z pewną ograniczoną funkcjonalnością). Podobnie, jak w przypadku MATLAB, istnieje interfejs GUI, na którym można polegać, jeśli nie chcesz uczyć się skryptów Tecplot. (GUI Tecplot jest o wiele bardziej funkcjonalny niż MATLAB.) Główną zaletą jest to, że jego możliwości drukowania 3D znacznie przewyższają matplotlib i MATLAB. Możliwe jest grupowanie danych wydruku przy użyciu języka makr / skryptów Tecplot oraz wywoływanie zewnętrznych skryptów Pythona (z pewną ograniczoną funkcjonalnością). Podobnie, jak w przypadku MATLAB, istnieje interfejs GUI, na którym można polegać, jeśli nie chcesz uczyć się skryptów Tecplot. (GUI Tecplot jest o wiele bardziej funkcjonalny niż MATLAB.) Główną zaletą jest to, że jego możliwości drukowania 3D znacznie przewyższają matplotlib i MATLAB. Możliwe jest grupowanie danych wydruku przy użyciu języka makr / skryptów Tecplot oraz wywoływanie zewnętrznych skryptów Pythona (z pewną ograniczoną funkcjonalnością). Podobnie, jak w przypadku MATLAB, istnieje interfejs GUI, na którym można polegać, jeśli nie chcesz uczyć się skryptów Tecplot. (GUI Tecplot jest o wiele bardziej funkcjonalny niż MATLAB.)

Narzędzia oparte na LaTeX, takie jak TikZ i PGFPlots, nie wydają się być stworzone dla twojego przypadku użycia. Słabym punktem jest tutaj manipulacja danymi; TikZ i PGFPlots to świetne narzędzia LaTeX. Chciałbym wiedzieć, jak lepiej z nich korzystać. Ponieważ są to LaTeX, domyślam się, że przepływ pracy polega na wycinaniu i wklejaniu niezbędnych danych do LaTeX i ich kreśleniu. Możliwe jest uruchamianie programów wewnątrz LaTeX, ale nie widzę, jak ta zdolność koniecznie by ci pomogła, biorąc pod uwagę, że w przypadku prezentacji lub dokumentu opisany przypadek użycia sugeruje, że prawdopodobnie zachowasz tylko ukończony produkt. Może nie masz nic przeciwko temu procesowi; oba narzędzia mają reputację dobrze zaprojektowanych i produkują wysokiej jakości dane.

Adobe Illustrator to także doskonałe narzędzie do poprawiania wykresów, tak jak powiedziałeś; braki to również, jak powiedziałeś, brak skryptowalności lub powtarzalności, ale nic nie przebije programu do edycji grafiki, jeśli chcesz wprowadzić małe poprawki.


1
Chcę tylko dodać mały komentarz do tej wspaniałej odpowiedzi. Nie ma potrzeby korzystania z produktu Adobe. Narzędzie inkscape o otwartym kodzie źródłowym zapewni również doskonałe narzędzia do retuszowania wykresów. W połączeniu z wtyczką LaTeX może wykonać dobrą robotę.
Azrael3000,

10

Myślę, że to doskonałe pytanie, które jest teraz na pierwszym planie. Czytając większość czasopism matematycznych, Matlab wydaje się akceptowalny, ale po prostu nie mierzy IMHO niektórych pięknych wykresów i diagramów, które pojawiają się w czasopismach takich jak PNAS, Nature, PLoS ONE itp.

Po kilku tygodniach omawiania dokładnie tego problemu w mojej grupie badawczej, nadal nie doszliśmy do prawdziwego wniosku, który pakiet jest najlepszy. Odkryliśmy, że większość porównań oprogramowania graficznego w dokumentacji, blogach lub innych źródłach internetowych jest w dużej mierze bezużyteczna przy ustalaniu, który pakiet jest najlepszy do danego celu.

Myślę, że tym, co naprawdę pomogłoby przeciętnemu użytkownikowi, który nie jest ekspertem we wszystkich / wielu z tych pakietów, jest posiadanie małego zestawu bardzo dobrze zdefiniowanych przykładów, które mogłyby być wykorzystane jako „graficzny test porównawczy” (w podobny sposób rozumieć jako wzorce CFD ). O ile mi wiadomo, obecnie nic takiego nie istnieje.

Przynajmniej chciałbym zobaczyć:

  1. Dość prosta dwuwymiarowa linia wykresu z kilkoma typami linii i punktów, legendą, matematyką w etykietach / tytułach itp.
  2. To samo dotyczy trójwymiarowej powierzchni.
  3. Bardziej wyrafinowana fabuła 3D z izosurfaces, płaszczyznami cięcia i być może innymi wymyślnymi funkcjami.
  4. Fantazyjny schemat 3D.

Dostarczone zostaną dane dla nr 1-3, a zdjęcie lub „oryginalny” schemat dla nr 4. Dla każdego przykładu kod (dane wejściowe) i obrazy (dane wyjściowe) będą publikowane. Pozwoliłoby to czytelnikowi łatwiej ocenić, który pakiet jest dla nich odpowiedni, zarówno pod względem jakości obrazu, jak i złożoności kodu.

Mój plan polega na zrobieniu czegoś takiego w mojej grupie w ciągu najbliższych miesięcy dla # 1, 2, 4 i niewielkiej liczby pakietów, w tym Matlab, pgf / TikZ, python / scipy. Jeśli istnieje zainteresowanie, mogę to opublikować publicznie.

Tak więc, nie jest to odpowiedź na pytanie Cytat jeszcze (i przepraszam za to), to może być odpowiedź w czasie kilku miesięcy.


Taki sugerowany punkt odniesienia to fajny pomysł. Wszystkie sugerowane sposoby dotarcia do końcowego diagramu są trudne do porównania, jeśli nie zaczniesz od danego zestawu danych i wymagań. Dodatkowo oglądanie kodu w różnych językach / pakietach pozwala porównać, które jest bardziej odpowiednie do twoich potrzeb. Szczególnie z TikZ mam wrażenie, że możesz odtworzyć prawie wszystko, ale może to wymagać prawdziwego eksperta.
Alexander

Myślę, że benchmark jest dobrym pomysłem; Sugeruję, aby dla twoich wykresów 2D powielono niektóre z wykresów w galerii Matplotlib . Przykładowy kod jest już podany dla każdego przykładu. Dla przykładów 3D Mayavi ma podobną galerię w swojej dokumentacji i ładny przykład samouczka 3D . Przydaje się również replikacja niektórych z tych wykresów 3D w innych pakietach.
Geoff Oxberry

Czego używasz teraz, kilka miesięcy później? Wszelkie komentarze na temat tworzenia działek przez hakowanie (majsterkowanie z opcjami w oknie tekstowym, działka, pętla ...) i / lub interaktywnie?
denis

8

LATEX


+1 i dla szybkich wykresów wypróbuj qtiplot, który jest dobrym klonem pochodzenia i może również dopasowywać krzywą. także dla ostatecznych układów xfig jest naprawdę fajny (ale twardy) i może osadzać formuły lateksowe bezpośrednio z odrobiną hackowania w szczegółach ...
Karussell

8

Innym pakietem oprogramowania do rozważenia jest Asymptote . Asymptote jest w rzeczywistości językiem programowania (ze składnią podobną do C ++), który wytwarza dane wyjściowe oparte na wektorze. Jedną fajną cechą jest to, że tekst jest renderowany za pomocą LaTeXa (w tym równań matematycznych), więc tekst na twoich rysunkach jest zgodny z twoim dokumentem.

Napisałem wrapper Pythona do Asymptote o nazwie PyAsy , abym mógł przekazać tablice NumPy do silnika Asymptote i wykonać kilka podstawowych operacji. Jest dość szorstki i nie jest kompletny, ale może być pomocny.

W każdym razie jakość wyjściowa Asymptote jest naprawdę niezła.

Edycja: W związku z powyższym uważam, że Fabric jest bardzo pomocny do uruchamiania zadań zdalnych, synchronizowania katalogów i budowania plików binarnych, pobierania danych uruchamiania i / lub uruchamiania skryptów analizy zdalnej. Jest to dość lekka biblioteka Python, która sprawia, że ​​uruchamianie zdalnych poleceń jest nieco łatwiejsze (i możliwe do skryptowania).


8

Pozwólcie, że napiszę krótką recenzję funkcjonalności graficznej Mathematiki, ponieważ to jest to, co znam.

Co to może zrobić

Aby zobaczyć przykład, sprawdź galerię kodów Mathematica na stronie Wolfram. Nie chodzi konkretnie o wizualizację, ale prawie wszystkie przykłady zawierają spisek.

Możesz także przeglądać tagi kreślenia (podstawowe) i graficzne (bardziej zaawansowane) w Mathematica.SE

Możliwe jest utworzenie przykładowego obrazu w pełni zautomatyzowany (nie jest wymagane ręczne przetwarzanie końcowe).

Silne strony

  • Wszystkie grafiki są określone w sposób deklaratywny (np. SVG --- nie mówisz systemowi, aby coś rysował , po prostu wyświetlasz obiekty grafiki wektorowej). Grafika jest tym samym rodzajem wyrażeń matematycznych, jak wszystko inne w systemie, jest po prostu wyświetlana w specjalny sposób. Oznacza to, że grafika może być łatwo przekształcona i przetworzona po ich utworzeniu --- dotyczy to również grafiki wykonanej przez funkcje drukowania.

  • Szybkim i prostym sposobem tworzenia grafiki jest korzystanie z funkcji drukowania na wysokim poziomie i ustawianie wielu opcji w celu dostosowania ich wyników. Jeśli nie ma funkcji precyzyjnego wydruku, której potrzebujesz, możesz złożyć grafikę z prymitywów graficznych (co jest również dość łatwe ).

  • Funkcja rysowania funkcji matematycznych jest doskonała. o ile mi wiadomo, to wiodąca klasa. Próbki Mathematica działają adaptacyjnie (zarówno w 2D, jak i 3D), dzięki czemu można szybko i automatycznie wygenerować płynny wykres. Osobliwości, nieciągłości itp. Są wykrywane symbolicznie poprzez wykreślanie funkcji.

  • Można tworzyć liczby dla określonego rozmiaru wydruku i upewnić się, że dobrze pasują do otaczającego tekstu w publikacji (np. Rozmiar czcionki i style pasują). W 2D istnieją dwa rodzaje współrzędnych: współrzędne wykresu odpowiadające danym i współrzędne bezwzględne określone w punktach drukarki. Pierwszy skaluje się podczas zmiany rozmiaru grafiki, drugi nie. Tekst domyślnie używa współrzędnych bezwzględnych, co oznacza, że ​​typ 8-punktowy będzie miał 8 punktów niezależnie od tego, czy ta sama figura jest eksportowana w rozmiarze 7 cm czy 14 cm. Umożliwia to dopasowanie rozmiarów czcionek do tekstu w publikacji.

  • Wbudowane składanie wzorów matematycznych. Pakiet zewnętrzny MaTeX zapewnia integrację LaTeX dla doskonałej jakości składu receptur. (Ujawnienie: Jestem autorem.)

  • Możesz przetwarzać wszystkie dane w tym samym systemie. Zasadniczo przy odrobinie pracy proces tworzenia pełnej figury można zautomatyzować (nawet niektóre zaawansowane aspekty ), unikając konieczności ręcznego przetwarzania końcowego w oprogramowaniu takim jak Adobe Illustrator. Jest to ważne, gdy w ostatniej chwili odkryjesz niewielki problem i musisz ponownie wygenerować liczbę.

Słabości

  • Posiadanie figur z kilkoma wykresami cząstkowymi i pewne precyzyjne wyrównanie między układami współrzędnych wykresów cząstkowych może być trudne.

    Pakiet SciDraw (strony trzeciej) naprawia to i daje szczegółową kontrolę nad każdym aspektem postaci. Kompromis tego pakietu polega na tym, że konfiguracja danych wymaga większego wysiłku.

  • Grafika 3D nie eksportuje się dobrze do formatów wektorowych. Eksportowanie wersji mapy bitowej jest jednak w porządku.

  • Jeśli Twoja instytucja nie ma jeszcze licencji, kosztuje.



5

Zagłęb się w wykresy PGF:

1) Potrafi robić diagramy 3D: Python-Matplotlib nie może tego robić, gnuplot jest brzydki w porównaniu

2) ma spójne czcionki pod względem wielkości i rodziny z dokumentem podstawowym)

3) może być szablonowany dla określonych kolorów

Na rynku nie ma nic podobnego. :)


1
matplotlib ma narzędzie do tworzenia wykresów 3d. Jest trochę słaby, ale z pewnością działa dobrze do szybkiej wizualizacji.
meawoppl

Zdecydowanie +1. Jeśli chodzi o wykresy jakości publikacji, nic nie przebije tego. Bezwstydna wtyczka: pytanie i moje odpowiedzi dotyczące pgfplots na TeX.sx: tex.stackexchange.com/search?q=user:9043+[pgfplots] . Zobacz także przykład texample.net/tikz/examples/pgfplots oraz bardzo obszerny podręcznik .
qubyte

W przypadku wykresów PGF mam tylko problem, że nie można zakładać, że wydawcy go poprą. Co byś zrobił, jeśli od tego zależy Twój przepływ pracy? Kiedyś skończyłem najpierw na składaniu liczb, a następnie dołączeniu wynikowego wyjścia do głównego pliku, który nie zależał już od wykresów PGF, co nie było zbyt wygodne. Czy istnieje bardziej sprytny sposób?
Christian Waluga,

1
@ChristianWaluga: możesz użyć klasy „samodzielnej” - pozwala to tworzyć obrazy PDF / EPS przy użyciu obrazu PGF, który już przygotowałeś do artykułu. Następnie możesz wstawić plik PDF do oryginalnego tekstu artykułu za pomocą includeegraphics.
tmaric

4

Uważam, że Tecplot jest dość potężny, jeśli chodzi o wizualizację i manipulowanie danymi.


4
Co z Tecplot czyni go bardzo potężnym? Jakie funkcje są szczególnie przydatne?
Paweł

4

Postaram się przedstawić mój pogląd na moje ograniczone doświadczenie, które obejmuje tylko kilka rodzajów wykresów: wykresy danych 2D, wykresy rozrzutu i diagramy oparte na grafach (drzewa i wykresy, schematy blokowe); ale najpierw pozwólcie mi nieco odejść od pytania:

Po pierwsze, chciałbym powiedzieć, że znaczenie produkcji wysokiej jakości działek jest często pomijane. Wykresy służą nie tylko do wyświetlania danych, ale jeśli są skutecznie wykorzystywane, mogą komunikować złożone pomysły, których często nie da się wyrazić w tekście. Wydaje mi się, że nie jest to odpowiednie miejsce do dyskusji na temat tego, co składa się na korzyści i wady dobrej działki, ale jeśli zainteresowani zajrzą tutaj .

Po drugie, częściej żałuję używania na wpół upieczonej działki niż spędzania czasu na działce o wysokiej jakości. Powodem jest to, że zła fabuła może cię okłamywać , na przykład, jeśli używasz półprzygotowanego wykresu do szybkiego przeglądania danych, które mogły nie zostać prawidłowo znormalizowane, lub używając niezbyt dobrych wykresów do dokonywania porównań wizualnych (oko może często wybaczać lub wprowadzać w błąd). Zawsze więc zalecałbym przygotowanie działek tak, jakby były pokazywane osobie, która nie zna wyników. Pozwala to zaoszczędzić czas i usprawnić pracę. Dodatkową korzyścią jest to, że materiały prezentacyjne będą gotowe do następnej prezentacji / seminarium / referatu.

Teraz, aby odpowiedzieć na pytanie ,

Z mojego doświadczenia wynika, że ​​zawsze lepiej jest oddzielić przetwarzanie danych od rzeczywistego narzędzia do drukowania i narzędzi do manipulacji obrazem. Do przetwarzania danych używam Pythona, ponieważ jest on bardzo elastyczny i nie znalazłem formatu pliku, który nie może być łatwo obsługiwany przez Pythona. Co więcej, biblioteki numpy i scipy mogą być potężnymi narzędziami do manipulacji danymi liczbowymi.

W Pythonie nie widziałem narzędzia do drukowania, które daje ci kontrolę nad wszystkimi szczegółami formatowania. Przekonałem się, że to szczegóły robią dużą różnicę, gdy próbujesz zintegrować obrazy podczas formatowania papieru w lateksie. Na przykład kontrola białych znaków i proporcji wokół wykresów może być bólem głowy z matplotlib (nie niemożliwe, ale nie warte mojego czasu), jest to bardzo ważne, jeśli masz ograniczoną przestrzeń, jak to często ma miejsce w dzienniku i konferencji dokumenty tożsamości.

Z mojego doświadczenia wynika, że GNUPLOT jest najlepszym narzędziem do formatowania i tworzenia wykresów 2D i wykresów rozrzutu. Daje to bardzo kontrolę nad wszystkimi szczegółami fabuły. Możesz także tworzyć wysokiej jakości wykresy (obrazy wektorowe) w czerni i bieli lub kolorze. Wysoki poziom kontroli sprawia, że ​​GNUPLOT jest nieco trudniejszy do nauczenia, a czasem proste rzeczy mogą wymagać trochę pracy, ale jeśli zaczniesz od przykładu, może to uprościć. Zazwyczaj patrzę na te dwie strony w poszukiwaniu inspiracji, patrz strona niezbyt często zadawanych pytań lub oficjalne dema tutaj .

Czasami wykresy tworzone przez GNUPLOT mogą być dość duże (w zakresie MB), a dziennik może odrzucać pliki (stało się tak z kilkoma bardzo kolorowymi wykresami rozrzutu). Użyłem i polecam Imagemagick , narzędzie wiersza polecenia, które pozwala konwertować, edytować i kompresować obrazy (użyłem go do generowania i edytowania plików JPEG wysokiej jakości, jednocześnie znacznie zmniejszając rozmiar pliku). Wypróbowałem inne narzędzia, które korzystały z automatycznej kompresji danych, co okazało się szczególnie problematyczne ze względu na delikatną równowagę między artefaktami obrazu a kompresją.

Stworzyłem też spory odsetek diagramów (często do prezentacji). Przekonałem się, że jeśli zamierzam użyć diagramu jednorazowo (a nie papier), to aplikacja Keynote (OSX) i zapisywanie do pdf jest wystarczająco dobre. Jednak przy wielokrotnym użyciu obrazu jakość prezentacji jest ważniejsza, a TikZ jest moim preferowanym narzędziem. Uważam, że TikZ jest trochę trudny w użyciu, ale jeśli zaczniesz od przykładu , jest o wiele łatwiejszy.

Wreszcie wykonuję większość pracy z wiersza polecenia, aby zintegrować różne narzędzia, których używam z bash lub python.


3

Mój szybki głos to na QtiPlot.

Chociaż nie jest idealny, zapewnia najlepszą kombinację łatwości GUI, wraz ze skryptami Pythona, więc tak naprawdę robisz wtedy „Qtiplot / Python / (Illustrator lub Inkscape)”. Qtiplot jest rozszerzalny, więc możesz tworzyć własne skrypty / makra, które mogą uruchamiać komendy python w celu otwierania i przetwarzania danych, a następnie zrzucania ich do tabeli. Możesz je następnie ręcznie lub automatycznie wydrukować. Możliwe jest również skonfigurowanie go do pracy z składnią LaTeX z internetowym składem tekstu lub z lokalnym składaniem, dzięki czemu możesz wstawiać formuły matematyczne do tytułów / osi / znaczników działki.

Wykresy można następnie wyeksportować do dowolnego żądanego formatu, ale najlepszym formatem jest niewątpliwie SVG. Pliki SVG można poprawiać w programie inkscape, jeśli chcesz, który ma również możliwości składu tekstu LaTeX.

Podczas gdy MatPlotLib jest świetny, jego największą wadą jest konieczność ręcznego kodowania absolutnie wszystkiego (tak jak każde inne rozwiązanie do tworzenia skryptów). QtiPlot jest świetny, ponieważ możesz skryptować / automatyzować przetwarzanie i kreślenie danych za pomocą doskonałej funkcjonalności Pythona, a następnie przekazać zgrubny wycinek do GUI, który pozwoli Ci ręcznie go ulepszyć i wykonać wszelkiego rodzaju wycinanie / wklejanie / manipulowanie GUI jest to znacznie szybsze w poszczególnych analizach danych. Możesz także precyzyjnie ustawiać wymiary za pomocą skryptów, a także manipulować wymiarami za pomocą GUI, czego nie można zrobić z matplotlib.

Przypuszczam, że zależy to od tego, jak się czujesz na temat rozwiązań kreślących QtiPlot. Przekonałem się, że jest bardzo zdolny, ale jest to dość stroma krzywa uczenia się.


3

Dziwię się, że nikt jeszcze nie wspominał o doskonałych narzędziach Nico Schlömer matlab2tikz i matplotlib2tikz . Jeśli używasz LaTeXa do przygotowywania dokumentów i Matlaba lub Pythona do przetwarzania danych, możesz łatwo uzyskać wysokiej jakości wykresy wektorowe, które możesz przetworzyć do treści twojego serca:

  1. Przygotuj swoje wykresy w Matlabie lub Pythonie, w tym osie, etykiety, legendy itp. Nie martw się o formatowanie TeXa.
  2. Zadzwoń matlab2tikz('figure.tex')(lub matplotlib2tikz).
  3. Edytuj figure.texdo smaku (zamień tekst etykiety na odpowiednią matematykę, zmień kolory, szerokość linii, rozmieszczenie legend, styl osi itp.), Zobacz instrukcję pgfplots (lub wiele pytań na temat pgfplots na temat wymiany stosów TeX).
  4. Zamiast tego includegraphicsumieść na rysunku \input{figure.tex}(i nie zapomnij dołączyć \usepackage{pgfplots}do preambuły).
  5. Aby przesłać, skorzystaj z biblioteki eksternalizacji (patrz rozdział 7 instrukcji), aby upiec swoją figurę w pliku pdf i po prostu zamień \input{figure.tex}na \includegraphics{figure.pdf}.

2

Jeśli nie szukasz skryptów, zajrzyj do MagicPlot. Nie jest tak bogaty w funkcje jak Origin (np. Może produkować tylko wykresy 2D), ale nigdy nie miałem problemów z szerokością linii i innymi właściwościami. Wykresy są ładne wygładzane, choć przerysowanie jest wystarczająco szybkie. Plus przydatne dopasowanie.


0

Tecplot 360 jest dobry do przetwarzania dużych danych i tworzenia wykresów o jakości publikacji. Ma potężne dodatki i interfejsy skryptowe do przetwarzania danych. Wydaje mi się, że robi wszystko, czego potrzeba do przetwarzania końcowego.

Częstym błędem jest uciekanie się do programu Excel. Nie. Nie pamięta układu, zakresu X, mapy kolorów. Nie animuje. Do pracy z danymi używa brzydkich, nieporęcznych arkuszy kalkulacyjnych.

Oczywiście nie znalazłbyś narzędzia, które wykonuje przetwarzanie końcowe i edycję tekstu, a wybór rozsądnego edytora tekstu dla twoich publikacji to kolejne ważne pytanie. Nie używaj MS Word, jego menedżer cytowań jest brzydki. Używam LyX lub dowolnego innego narzędzia Latex dostępnego dla używanego systemu operacyjnego.

Aha, a kiedy musisz opublikować PDF, dołącz link do LaTeX, Worda lub innego formatu z czytelną matematyką. W formacie PDF tak nie jest.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.