Машинное обучение и анализ данных (журнал)/Оформление графиков

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
Текущая версия (17:56, 5 сентября 2019) (править) (отменить)
(Пример крутой картинки, сделанной на Python)
 
(10 промежуточных версий не показаны.)
Строка 1: Строка 1:
{{Main|Машинное обучение и анализ данных (журнал)}}
{{Main|Машинное обучение и анализ данных (журнал)}}
-
Практически все популярные пакеты рисуют графики с подписями, которые трудно читать на бумаге и на слайдах из-за малого размера шрифта. Шрифт на графиках (подписи осей и цифры на осях) должны быть такого же размера, что и основной текст. Подпись всего графика (как правило, делается командой title) в коде не нужна, так как ее роль играет подпись рисунка (\caption{Подпись}) в статье.
+
Практически все популярные пакеты рисуют графики с подписями, которые трудно читать на бумаге и на слайдах из-за малого размера шрифта. Шрифт на графиках (подписи осей и цифры на осях) должны быть такого же размера, что и основной текст. Подпись всего графика (как правило, делается командой title) в коде не нужна, так как ее роль играет подпись рисунка (\caption{Подпись}) в статье. Пример графика с [[Media:PhonesAccelerometer.pdf|сигналами акселерометра]].
[[Изображение:ModelBreadSw.png|200px|thumb|Функция ошибки]]
[[Изображение:ModelBreadSw.png|200px|thumb|Функция ошибки]]
Строка 30: Строка 30:
<source lang="python">
<source lang="python">
from matplotlib import pylab as plt
from matplotlib import pylab as plt
-
plt.rcParams['font.family'] = 'serif'
+
plt.rcParams['font.family'] = 'DejaVu Serif'
-
plt.rcParams['font.serif'] = 'FreeSerif'
+
plt.rcParams['lines.linewidth'] = 2
plt.rcParams['lines.linewidth'] = 2
plt.rcParams['lines.markersize'] = 12
plt.rcParams['lines.markersize'] = 12
plt.rcParams['xtick.labelsize'] = 24
plt.rcParams['xtick.labelsize'] = 24
plt.rcParams['ytick.labelsize'] = 24
plt.rcParams['ytick.labelsize'] = 24
-
plt.rcParams['legend.fontsize'] = 24
+
plt.rcParams['legend.fontsize'] = 24
-
plt.rcParams['axes.titlesize']=36
+
plt.rcParams['axes.titlesize'] = 36
-
plt.rcParams['axes.labelsize']=24
+
plt.rcParams['axes.labelsize'] = 24
 +
### Сохранение изображения ###
 +
plt.savefig('1.svg') # Поддерживаемые форматы: eps, jpeg, jpg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif, tiff
</source>
</source>
Строка 63: Строка 64:
\end{figure}
\end{figure}
</source>
</source>
 +
 +
=== Пример иллюстрации, сделанной на Python ===
 +
[[Изображение:BestPythonFig.jpeg|800px]]
 +
 +
Код картинки содержится в [[Медиа:PLSFigure.zip| ipython notebook]]:
=== Оформление графиков в Inkscape ===
=== Оформление графиков в Inkscape ===
Строка 89: Строка 95:
[[Изображение:Sar2.png|500px]]
[[Изображение:Sar2.png|500px]]
 +
 +
 +
=== Сбор таблицы из графиков ===
 +
Для плотной упаковки графиков в текст статьи рекумндуется использовать пакет '''subfig'''.
 +
 +
<source lang="LaTeX">
 +
\usepackage{subfig}
 +
 +
\begin{figure}[!ht]
 +
\subfloat[$T(i) \sim \sin$]{\includegraphics[width=0.16\textwidth]{ts_T_sin}}
 +
\subfloat[]{\includegraphics[width=0.16\textwidth]{pc12_sin}}
 +
\subfloat[]{\includegraphics[width=0.16\textwidth]{segm_sin}}\\
 +
\subfloat[$T(i) \sim \log$]{\includegraphics[width=0.16\textwidth]{ts_T_log}}
 +
\subfloat[]{\includegraphics[width=0.16\textwidth]{pc12_log}}
 +
\subfloat[]{\includegraphics[width=0.16\textwidth]{segm_log}} \\
 +
\caption{\hl{The figure illustrates two examples of segmenting phase-modulated time series.}}
 +
\label{fg:mod}
 +
\end{figure}
 +
</source>
 +
 +
[[Изображение:six_pack.png|500px]]
 +
 +
 +
Для упаковки графиков на слайдах рекомендуется использовать окружение '''columns'''.
 +
<source lang="LaTeX">
 +
\begin{columns}[c]
 +
\column{0.3\textwidth}
 +
\includegraphics[width=1\textwidth]{Figure1}
 +
\column{0.7\textwidth}
 +
\includegraphics[width=1\textwidth]{Figure2}
 +
\end{columns}
 +
</source>
=== [http://mirror.macomnet.net/pub/CTAN/graphics/pgf/base/doc/pgfmanual.pdf Коммутативные диаграммы в LaTeX, справочник] ===
=== [http://mirror.macomnet.net/pub/CTAN/graphics/pgf/base/doc/pgfmanual.pdf Коммутативные диаграммы в LaTeX, справочник] ===

Текущая версия

Практически все популярные пакеты рисуют графики с подписями, которые трудно читать на бумаге и на слайдах из-за малого размера шрифта. Шрифт на графиках (подписи осей и цифры на осях) должны быть такого же размера, что и основной текст. Подпись всего графика (как правило, делается командой title) в коде не нужна, так как ее роль играет подпись рисунка (\caption{Подпись}) в статье. Пример графика с сигналами акселерометра.

Функция ошибки
Функция ошибки

Советы по оформлению графиков:

  • шрифт должен быть больше,
  • толщина линий равна двум,
  • заголовки осей с большой буквы,
  • включайте интепретатор LaTeX для корректного отображения формул на осях,
  • заголовок графика отсутствует (чтобы не дублировать подпись в статье),
  • рекомендуется сразу сохранять EPS и PNG (для TeX и для Wiki),
  • тем, кто подает статьи в русские журналы из списка ВАК рекомендуется еще сохранять в EMF (для MS-Word).

Рекомендованные размеры.

h = figure; hold('on');
plot(xi,y,'r-', 'Linewidth', 2); 
plot(xi,y,'b.', 'MarkerSize', 12);
axis('tight');
xlabel('Time, $\xi$', 'FontSize', 24, 'FontName', 'Times', 'Interpreter','latex');
ylabel('Value, $y$', 'FontSize', 24, 'FontName', 'Times', 'Interpreter','latex');
set(gca, 'FontSize', 24, 'FontName', 'Times')
saveas(h,'ModelOne.eps', 'psc2');
saveas(h,'ModelOne.png', 'png');

Код для Python:

from matplotlib import pylab as plt
plt.rcParams['font.family'] = 'DejaVu Serif'
plt.rcParams['lines.linewidth'] = 2
plt.rcParams['lines.markersize'] = 12
plt.rcParams['xtick.labelsize'] = 24
plt.rcParams['ytick.labelsize'] = 24
plt.rcParams['legend.fontsize'] = 24
plt.rcParams['axes.titlesize'] = 36
plt.rcParams['axes.labelsize'] = 24
### Сохранение изображения ###
plt.savefig('1.svg') # Поддерживаемые форматы: eps, jpeg, jpg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif, tiff

При значительном количестве рисунков рекомендуется группировать иx в одном окружении {figure}, используя пакет subfig:

\usepackage{subfig}

Для отображения русских букв в подписях к графикам рекомендуется использовать команду:

\renewcommand{\thesubfigure}{\asbuk{subfigure}}


\begin{figure}[!htbp]
\centering
  \subfloat[Исходные признаки]{\includegraphics[width=0.5\textwidth]{testing_vs_learning_auc_init_german.eps}}
  \subfloat[Разделенные признаки]{\includegraphics[width=0.5\textwidth]{testing_vs_learning_auc_edit_german.eps}}\\
 \caption{Зависимость площади AUC под ROC-кривой, процента ошибок и эмпирического риска для исходных и разделенных признаков
  от числа итераций метода градиентного спуска}
  \label{fig:comparison_auc_mistakes_risk}
\end{figure}

Содержание

Пример иллюстрации, сделанной на Python

Код картинки содержится в ipython notebook:

Оформление графиков в Inkscape

Inkscape -- векторный графический редактор, удобный для создания технических иллюстраций.

Пример использования.

1. Нарисовать изображение, используя, где необходимо, latex-формулы:

2. Сохранить изображение в формате eps, используя дополнительную опцию "создать файл latex". На выходе сгенерируется два файла - image.eps и image.eps_tex, второй можно редактировать в tex-редакторе.

3. Вставить файл image.eps_tex в код статьи, заменив при этом

\includegraphics[width=<desired width>]{image.eps}

на

\def\svgwidth{<desired width>}

\input{image.eps_tex}.

4. Profit:


Сбор таблицы из графиков

Для плотной упаковки графиков в текст статьи рекумндуется использовать пакет subfig.

\usepackage{subfig}
 
\begin{figure}[!ht]
  \subfloat[$T(i) \sim \sin$]{\includegraphics[width=0.16\textwidth]{ts_T_sin}}
  \subfloat[]{\includegraphics[width=0.16\textwidth]{pc12_sin}}
  \subfloat[]{\includegraphics[width=0.16\textwidth]{segm_sin}}\\
  \subfloat[$T(i) \sim \log$]{\includegraphics[width=0.16\textwidth]{ts_T_log}}
  \subfloat[]{\includegraphics[width=0.16\textwidth]{pc12_log}}
  \subfloat[]{\includegraphics[width=0.16\textwidth]{segm_log}} \\
\caption{\hl{The figure illustrates two examples of segmenting phase-modulated time series.}}
\label{fg:mod}
\end{figure}


Для упаковки графиков на слайдах рекомендуется использовать окружение columns.

\begin{columns}[c]
  \column{0.3\textwidth}
    \includegraphics[width=1\textwidth]{Figure1}
  \column{0.7\textwidth}
    \includegraphics[width=1\textwidth]{Figure2}
\end{columns}

Коммутативные диаграммы в LaTeX, справочник

Личные инструменты