Pytanie:
Gnuplot w pracy dyplomowej i artykułach czy nie?
Janos Braem
2013-05-30 17:57:57 UTC
view on stackexchange narkive permalink

Robię pracę magisterską z astrofizyki z dużą ilością programowania w Pythonie. Obecnie używam gnuplot do moich wykresów, ale zastanawiam się, czy wygląda to całkiem profesjonalnie. Czy są inne opcje, które wyglądają lepiej i nadal są łatwe w użyciu?

Oto przykład figury z mojej pracy:

Example Figure

Pion linia, którą otrzymałem następującym poleceniem:

  ustaw strzałkę od 4861,3, -1200 do 4861,3,2000 nohead lc 2 

Wiem, że sięga poza figura, ale używam tego polecenia dla całego mojego skryptu i dopiero na końcu wiem, jaka będzie górna i dolna granica osi y. Każdy szczyt jest inny.

Nie sądzę, żeby było coś złego w GNUPlot, prawdopodobnie ważniejsze jest, jak projektujesz działki w GNUPlot, patrz na przykład http://academia.stackexchange.com/q/10282/4394
Gnuplot to * wybór * narzędzia do drukowania. Śmiało, bądź w tym dobry, a prawdopodobieństwo, że się pomylisz, będzie niewielkie. W Internecie jest mnóstwo zasobów (np. [Gnuplotting] (http://www.gnuplotting.org/)), a także książka Janerta [Gnuplot in action] (http://www.manning.com/janert/ ). Powodzenia!
Czy masz przykład typowego wątku w swojej pracy dyplomowej? Jeśli tak, prawdopodobnie możesz opublikować i zapytać: „Co mogę zrobić, aby ulepszyć tę fabułę?” i zasięgnij konkretnych porad, a nie tylko pytaj o alternatywne pakiety oprogramowania, które mogą ci pomóc, ale nie muszą.
@Irwin: zredagował pytanie.
@JanosBraem Pytania "Czy GNUPlot jest w stanie generować wykresy o jakości publikacji?" i „Czy ta fabuła (wygenerowana przez GNUPlot) ma jakość publikacji?” są bardzo różne. A późniejsza może być nieodpowiednia dla witryn StackExchange jako „zbyt zlokalizowana” lub „nie na temat” (ponieważ dotyczy modyfikowania działki, co ma wiele wspólnego z innymi witrynami, witrynami SE, ale nie - ze środowiskiem akademickim).
Jeśli wiesz, gdzie jest szczyt, dlaczego nie wiesz, jak jest wysoki? Po co używać strzałki bez grotu zamiast kreślić nową linię danych z dwoma punktami? Występują problemy z wykresem - legendy powinny być większe niż etykiety znaczników, szerokość linii może być nieco grubsza, posiadanie takich rzeczy jak u (1 $ / (1.9072)): 2 (lub nawet nazwa pliku) nie jest zbyt profesjonalne - patrząc. Ale wszystkie te można naprawić przy odrobinie wysiłku bez użycia czegoś innego niż Gnuplot.
-1
@PiotrMigdal Skupiono się na pierwszym pytaniu. Ale dzięki wskazówkom i wskazówkom tutaj jestem przekonany, że z niektórymi zatwierdzeniami Gnuplot nadaje się również do publikacji.
Zobacz mój komentarz [tutaj] (http://academia.stackexchange.com/a/10033/285).
StackOverflow ma tag [`gnuplot`] (http://stackoverflow.com/questions/tagged/gnuplot), który może być pomocny w nadaniu Twoim wykresom bardziej„ profesjonalnego ”wyglądu. W tym przypadku samo użycie `GPVAL_Y_MAX` /` GPVAL_Y_MIN` jako granic y strzałki pomogłoby w utrzymaniu linii w ramce osi. Alternatywnie, `GPVAL_DATA_Y_MAX` zawiera maksymalną wartość y linii danych. Zobacz na przykład: http://stackoverflow.com/questions/7330161/accessing-gnuplots-autorange-values
Cztery odpowiedzi:
silvado
2013-05-30 18:40:02 UTC
view on stackexchange narkive permalink

Jeśli programujesz w Pythonie, możesz również drukować w Pythonie za pomocą matplotlib. Dzięki niewielkiej regulacji parametrów kreślenia możliwe jest tworzenie wykresów o jakości publikacyjnej za pomocą tego oprogramowania.

Alternatywnie, jeśli potrzebujesz wymyślnych adnotacji itp., Mogę polecić pgfplots pakiet dla tikz / LaTeX. Możesz wyeksportować dane z programu w języku Python do pliku csv, a następnie użyć go jako źródła danych do drukowania za pomocą pgfplots. Jeśli używasz TeX-a do głównego tekstu, pozwala on na tworzenie grafiki, która ładnie pasuje do formatowania tekstu.

Za pomocą matplotlib można również generować liczby z tekstem LaTeX i formułami
Rex Kerr
2013-05-30 22:52:27 UTC
view on stackexchange narkive permalink

Trudno jest stworzyć profesjonalnie wyglądające wyniki z Gnuplot (nawet trudniejsze niż w Matlabie, czego też nie polecam).

Ponieważ używasz już Pythona, matplotlib to oczywisty wybór. Możesz nawet podjąć przyzwoitą próbę uzyskania pełnych liczb, a nie tylko jednego panelu.

Zazwyczaj astrofizyka nie ma obecnie zbyt wielu odniesień do astronomii. Jeśli jednak twoja teza tak działa, możesz również sprawdzić APLpy, który dodaje do matplotlib.

mówisz: „Trudno jest uzyskać profesjonalnie wyglądające wyniki z Gnuplot”. Nie zgadzam się, Gnuplot jest doskonały, jeśli używasz go ostrożnie, przynajmniej do dwuwymiarowych fabuł.
@MarcusAntoninus - Jaka jest różnica między „trudnym” a „ostrożnym”?
@MarcusAntoninus - Dla porównania, widzę wykresy w http://www.phyast.pitt.edu/~zov1/ jako graniczne pod względem jakości publikacji.
@RexKerr czy mógłbyś dokładniej dowiedzieć się, co jest nie tak z działkami w podanym łączu, wyglądają one na podstawowe, ale zasadniczo funkcjonalne. Gorzej widziałem w publikacjach.
@PaulHiemstra - wszystkie mają zły alias. W pierwszym z nich etykiety osi są za małe - tak naprawdę cały tekst jest - a etykieta erf jest zbyt blisko granicy. W drugim etykiety kleszczy nic nie pomagają, a strzałka wygląda jak z kreskówki. Trzeci jest dobry; tylko etykiety kleszczy są za długie. Czwarty jest po prostu brzydki; potrzebujesz mniej miejsca i falistych linii, a nie tylko ukośników, aby wskazać przestrzeń, i potrzebujesz tego również na linii wykresu. Piąty ma zły odstęp między etykietami osi (w tym etykiety znaczników), a wygładzanie wprowadziło przesunięcie w danych. Masz pomysł.
@PaulHiemstra - To powiedziawszy, widziałem też gorsze, ale te ładnie wyglądające nie wyglądają łatwo, a te łatwo wyglądające nie wyglądają tak ładnie. A przykłady nie obejmują rzeczy, których gnuplot nie robi tak dobrze, jak symbole linii (np. Ustawianie szerokości linii symbolu pudełka). Z drugiej strony, czasami nie chcesz, aby Twoje figury były dziełem sztuki, ale po to, aby uzyskać odpowiedni punkt, a wtedy zwykle możesz uzyskać coś akceptowalnego bez zmiany zbyt wielu wartości domyślnych.
Nate Eldredge
2013-05-31 19:06:08 UTC
view on stackexchange narkive permalink

Jeśli chodzi o wykres, który pokazałeś, mam kilka sugestii, aby wyglądał bardziej „profesjonalnie”. (Być może niektóre z nich już robisz w rzeczywistym dokumencie.)

  • Użyj formatu pliku wektorowego; Twoje linie będą wyglądać płynniej, aż do rozdzielczości Twojej drukarki. Proponuję ustawić terminala pdf .

  • Ustaw znaczący tytuł dla krzywej: plot "tkrs.txt" using ... title " Gęstość strumienia dilitu ”. Lub całkowicie go pomiń: wykreśl „tkrs.txt” używając… notitle .

  • Jeśli kreślisz funkcję matematyczną (zamiast zbioru danych), ustaw próbki 5000 lub coś podobnie wysokiego na ostateczny wynik.

  • Postaraj się wybrać czcionkę etykiet, która najlepiej pasuje do tekstu papieru . Zobacz termin pomocy pdf , aby uzyskać więcej informacji i inne interesujące poprawki. Możesz także użyć znaków spoza zestawu ASCII (np. Å zamiast angstrom).

  • Ustaw rozmiar wykresu i proporcje, które ładnie pasują do strony, najlepiej tak, aby edytor tekstu (lub LaTeX) nie musiał jej przeskalowywać.

  • W przypadku linii pionowej możesz oszukiwać i użyj funkcji parametrycznej, aby został przycięty do granic wykresu. Jest to trochę trudne, ponieważ jeśli wydłużasz linię, domyślnie wykres zostanie przeskalowany, aby pasował do całości. Ale jest sposób, aby tego uniknąć:

     set xrange [] writebackset yrange [] writebackplot "tkrs.txt" ... set parametrricset trange [-1200: 10000] set xrange restoreset yrange restorereplot t, 4861.3 notitle 
Wielkie dzięki za podpowiedzi, spróbuję ich wszystkich w przyszłym tygodniu.
Peter Jansson
2013-05-30 20:55:19 UTC
view on stackexchange narkive permalink

Wybór sposobu drukowania będzie zależał od kilku czynników. Po pierwsze, ważne jest, aby stwierdzić, że istnieje wiele opcji, od GNUPlot, przez komercyjne pakiety do drukowania, takie jak Grapher i Origin, możliwości drukowania Matlab i R, do drukowania przy użyciu określonych pakietów, takich jak pgfplots (LaTeX) lub pakiety graficzne towarzyszące językom programowania ( np. PSPlot). To, co wybierzesz, będzie zależało od innych czynników, takich jak to, czego używają twoi rówieśnicy, z czym mogłeś się zapoznać i być może na co Cię stać (myślenie o oprogramowaniu open source vs. komercyjnym).

Moje osobiste doświadczenia że nie ma jednego oprogramowania, które potrafi wszystko, dlatego kluczem do sukcesu było dla mnie zidentyfikowanie tego, co muszę zrobić, i zminimalizowanie liczby programów potrzebnych do wykonania tego. Doprowadziło mnie to do wyborów, które nie są powszechne wśród moich rówieśników, a także pozostawiło mi możliwość znalezienia własnych rozwiązań, nie czerpiąc tyle z doświadczeń innych osób (dzięki niebiosom za strony takie jak wymiana stosów)

Więc trzymaj się do tego, co wiesz, o ile może robić to, co chcesz, ale zawsze wypatruj nowych rozwiązań i spróbuj dowiedzieć się, co robią inni, co może zrobić na tobie wrażenie.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...