Pull to refresh

Comments 20

UFO just landed and posted this here
Большое спасибо за статью, емкая и лаконичная, забрал в избранное.

Маленький вопрос: есть какой-нибудь способ настроить внешний вид засечек на оси (ticks), длинноваты на мой взгляд?

ps: на графике, где логарифмы, в легенде натуральный логарифм и по основанию два перепутаны местами.
Для этого используется свойство major tick length для основных засечек (по умолчанию 0.15 см) и minor tick length для дополнительных (по умолчанию 0.1 см).

%Преамбула
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}

%Содержимое документа
\begin{document}
\begin{tikzpicture}
\begin{axis} [major tick length = 0.08cm]
\addplot {e^x};
\end{axis}
\end{tikzpicture}
\end{document}

image

Если интересно, о других настройках засечек можно прочитать в документации (стр.276) или спросить здесь (это будет очень полезно для будущих читателей).

P.S. Спасибо за внимательность, исправил.
В чём плюсы и минусы по сравнению с, например, обычным Tikz+GNUPlot?
ЕМНИП в pgfplots не нужен --shell-escape и собственно гнуплот
По сравнению с TikZ+Gnuplot мне показался синтаксис команд pgfplots более понятным.
В статье я буквально мельком упомянул, что PGFPlots умеет работать с GNUPlot и делает это весьма добротно.

%Преамбула
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}

%Содержимое документа
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot gnuplot [id=sin] {sin(x)};
\end{axis}
\end{tikzpicture}
\end{document}

Результат таков.

Поэтому вопрос скорее я бы поставил так (поправьте, если я не прав): в чём разница между штатными средствами PGFPlot и GNUPlot? Разработчики PGFPlot отвечают следующее:
– Штатные средства не требуют установки внешних приложений и не требуют указания каких-либо дополнительных опций в командной строке;
– Штатные средства не создают огромное число временных файлов;
– GNUPlot использует радианы для тригонометрических функций, тогда как штатные средства используют по умолчанию градусы (это можно изменить, если поставить trig format=rad);
– GNUPlot быстрее;
– GNUPlot имеет большую математическую библиотеку;
– GNUPlot точнее (однако начиная с версии 1.2 это больше не является серьёзной проблемой).

Хотя на мой взгляд особых кардинальных различий между этими средствами нет, которые бы проявлялись в повседневной работе.
Очень достойные графики, не хуже matplotlib.
Очень клёвая статья. Весь базовый функционал, который покрывает 95% задач, описан.
Великолепно. Возьму себе на заметку, ибо такими штуками интересуюсь
Спасибо за статью. Надо будет попробовать pgfplots в деле.
А не проще ли сделать график в matplotlib/ggplot2 и потом экспортировать в eps/pdf?
На вкус и цвет… Вопрос выбора инструментария — вопрос индивидуальный. Преимуществом описанного подхода является отсутсвие необходимости городить дополнительный набор средств (скриптов и прочего) если есть желание пересобирать документ при изменении данных графиков «нажатием одной кнопки».

К тому же, такой подход со встраиванием позволяет воспользоваться всей формульной мощью латеха при оформлении подписей и легенд.
Если есть матерые гнуплотчики, подскажите как решить такую проблему (рис. внизу):
при построении графика по экспериментальным данным не удается провести кривую близко к точкам из-за резкого перелома в значениях по оси ординат близлежащих точек (ниспадающие кривые). На графике точки — это экспериментальные данные, линии построены по уравнению, подобранному с помощью CurveExpert Professional, который перебрал более 60 зависимостей и отобрал наиболее подходящие, но результат, к сожалению неудовлетворительный. Гнуплот в чистом виде вместо кривой рисует синусоиду.
Может pgfplots справится с такой проблемой?
www.dropbox.com/s/4qvwxyhfbh3ihqw/h2o2-doklad-png.png
Насколько я понял, из пока довольно поверхностного знакомства с gnuplot, его возможности по подбору регрессионной функции достаточно ограничены. Тут, мне кажется, надо самому решать вопрос с аппроксимацией.
Вообще на вид аппроксимация довольно недурна. Имеется ли предположения о характере исследуемых зависимостей?
Конечно, я же написал, что в курве получил уравнение регрессии, а потом по нему в gnuplot кривую строил
C_1(x)=(a1+b1*x)**(-1/c1)
plot [0:5] \
C_1(x) w l lt 1 title «H_2O_2 30 г/л» axis x1y1,\
Имел в виду какую-нибудь теоретическую зависимость, или гипотезу о том, какова она должна быть.
Вообще экспериментальных точек маловато
Теоретической зависимости нет т.е. опереться вообще не на что, именно поэтому я практически исследовал процесс разложения пероксида водорода в исследуемых условиях, с последующим проведением регрессионного анализа.
Sign up to leave a comment.

Articles