Open source
LaTeX
Data visualization
Comments 25
-3
Прежде чем использовать этот подозрительный gnuplottex, советую заглянуть в его внутренности и понять суть работы. Есть у меня подозрения, что он каждую компиляцию заново строит графики, что неприемлемо.
А вот если он создает директорию, куда накидывает pdf-файлы с графиками только при первой компиляции или при изменении содержимого окружения gnuplot, то можно и использовать.
Но я все равно не вижу в этом особого смысла. Разве что построение ежемесячных отчетов с кучей графиков по показаниям за месяц (т.е. make подготавливает, скажем, на основе данных в БД, файлы для гнуплота, а затем «в один присест» мы компилируем файл и строим графики), т.е. тот вариант, когда и пакет fp рационально использовать.
0
А вот если он создает директорию, куда накидывает pdf-файлы с графиками только при первой компиляции или при изменении содержимого окружения gnuplot, то можно и использовать.


Создает pdf файлы. И eps файлы создает. В директории проекта
+2
Я использую для этого tikz. Достаточно мощный пакет с большими возможностями.
+1
Ну, всё-таки это разные вещи. tikz отличен для создания иллюстраций — всяких схемок и прочее. А gnuplot нужен, чтобы строить именно графики функций или, что реалистичнее, всяких данных, вместе с error-bar'ами и прочее. Оба инструмента важны.
+4
скорее всего имелся ввиду не сам tikz, а его макрорасширение pgfplots.
+5
Мой коллега однажды написал очень неплохой, как мне кажется, сборник советов и рецептов про latex. Там есть про microtype, оформление библиографии и другое. Вероятно, читателям этой статьи тоже будет интересно.

Кроме того, мне кажется, на рисунках можно поправить некоторые вещи: (1) расстояния между «коробкой» рисунка (черным квадратом), подписями к осям и значениями на осях можно делать значительно меньше. (2) Расстояния «коробка-числа на осях» и «числа на осях-подписи к рисунку» можно сделать одинаковыми или соразмерными (сейчас вторые намного больше первых). (3) Подписи лучше выравнивать по «коробке», а не по всей ширине/высоте рисунка (коробке + подписям осей). (4) На трехмерном рисунке значения налазят на ось и друг на друга. (5) Кроме того, минимальное значение по оси z можно сделать намного меньше. (6) Еще я заметил, что нынче в западных физических журналах почти никогда не рисуют сетку (даже в логарифмических шкалах), просто оставляют ticks на осях—видимо, чтоб не захламлять рисунок и не отвлекать внимание.
+1
На всякий случай упомяну, что в Papeeria (онлайн редактор и компилятор латеха) встроена возможность быстро построить средствами гнуплота график или гистограмму по данным, взятым из файла или клипборда. На выходе получается standalone PDF, встраиваемый в основной файл, выглядит он симпатично, в метках можно использовать латех, и вдаваться в тонкости программирования гнуплота (а он все таки не самый дружественный к ошибкам) почти не нужно. Особо продвинутые же пользователи могут запускать полноценные гнуплот скрипты и строить сложные графики.

+1
В своё время тоже мучился со стилями для Gnuplot, но в итоге перешёл на GLE.
0
Тоже очень интересно, не знал про него. Стянул мануал с сайта, на досуге попробую
0
Это штука, которая уже боле двух лет остановилась в развитии?
0
Подскажите пожалуйста хорошую документацию по LaTeX на Русском.
0
Если нужна именно документация, а не учебник, обратите внимание на мануалы Сюткина: «Справочник по командам LaTeX2», «Набор математических формул в LaTeX2», «Русский язык в LaTeX», «Цвет в LaTeX», «Включение рисунков в LaTeX2», «Гипертекст в LaTeX».
+1
А кто-нибудь может поделиться опытом использования подобного, но для построения графиков в R?
+1
Да, в R достаточно просто печатать на графиках математические символы.

Взято здесь

Под тэгом код и результат.
x < — seq(-4, 4, len = 101)
y < — cbind(sin(x), cos(x))
matplot(x, y, type = «l», xaxt = «n»,
main = expression(paste(plain(sin) * phi, " and ",
plain(cos) * phi)),
ylab = expression(«sin» * phi, «cos» * phi), # only 1st is taken
xlab = expression(paste(«Phase Angle », phi)),
col.main = «blue»)
axis(1, at = c(-pi, -pi/2, 0, pi/2, pi),
labels = expression(-pi, -pi/2, 0, pi/2, pi))

Приводит к вот такому результату


Было время, R автоматически распознавал latex в подписях и текстах на графиках, но и нынешний вариант неплохо смотрится.

Я печатаю из R в pdf, а pdf вставляю в latex документ.
+2
Прикольно. Я когда делал работы в LaTeX'е, использовал Makefile'ы.

По команде make сначала отрисовываются графики (если исходные файлы были изменены) и складываются в отдельную папочку в pdf (или eps — не помню уже), потом собирается LaTeX-документ, в который в нужных местах подключаются эти самые графики. И так же само, кстати, и svg-графика собиралась: inkscape'ом в пакетном режиме в pdf, а потом подключалась в проект. В итоге одной командой собиралась вся работа (очень выручало, когда надо было перед сдачей на коленке что-то исправить).

Если кому-то такой метод пригодится — пользуйтесь на здоровье ;)
0
Спасибо!
Makefile'ы, как показывает практика, вообще замечательная штука.
0
Поддерживаю. С Makefile на мой вкус получается более unixway: нет привязки к специфическому расширению LaTeX, можно подвязать любой внешний генератор графиков или преобразование входных данных, явно видны все зависимости между файлами в проекте.
0
Вот основная беда таких инструментов — у них нет заранее заготовленных вариантов оформления как правило. Получишь пару раз страшный дефолт и пойдёшь искать альтернативу.
За статью спасибо большое. Забрал в избранное.
+2
Неплохо.
Но такого же результата можно добиться с заметно меньшими усилиями, если воспользоваться Python + NumPy + Matplotlib.
Кроме того, за счет использования NumPy можно более гибко манипулировать данными.
+1
Причём Python + NumPy + Matplotlib это не только посторитель графиков, но ещё и мощный язык для написания всего что угодно. Но это затягивает, я сначала на нём стоил графики из сишной проги, а потом полностью перешел на питон в расчётах :)
0
Я бы упомянул таки классические TikZ и PGF. Я читал каменты — вот буквально пример www.texample.net/tikz/examples/gnuplot-basics/
И я бы упомянул, что gnuplot ещё и сам умеет делать выход на LaTeX.

Кстати, интересный академический вопрос — конвертор формул LaTeX вот в то, что gnuplot понимает (я так понимаю FORTRAN-формат). Я не смог найти.
0
А я использую R-пакеты knitr и ggplot2. Это просто сказка какая-то. Можно все вычисления и построения графиков делать прямо в LaTeX-документе (лучше, конечно, выносить в отдельные файлы скриптов). Скажем, есть у меня какие-то исходные данные для задачки, я на их основе чего-нибудь рассчитываю и рисую графики. Поменялись исходные данные — все расчётные значения пересчитались, графики красиво перерисовались. ggplot2 обладает определённым порогом вхождения, но если научиться им пользоваться, то красивые визуализации для статьи перестают быть проблемой.
0
Испольузю Gnuplot с выводом результата в TikZ для пострения сложных графиков, основанных на экспериментальных данных, и непосредсвенно TikZ для построения простых графиков.

Например простой график выглядит так:
\begin{tikzpicture}
% АЧХ RC-цепочки
\draw[-latex] (0,0) -- (4,0) node [anchor=west] {$\omega$}; % оси
\draw[-latex] (0,0) -- (0,3) node [anchor=south] {$K(\omega)$};
\draw[domain=0:3,y=2cm, x=1cm,smooth] plot function{1/(1+x**2)**0.5}; % график
\end{tikzpicture}


Как-то раз нужно было постоянно перестраивать графики, если добавились новые файлы данных. Решил эту задачу скриптом на баше, который смотрел есть ли новые файлы с данными и генерировал скрипт Gnuplot, который в свою очередь генерировал TikZ, которые подставлялись в отчёт.
Only those users with full accounts are able to leave comments.  , please.