## Оглавление раздела

- Установка источника данных
- Параметр curve.data.colsep
- Параметр curve.data.skiprows
- Параметр curve.data.formatcol

## Установка источника данных

Данные могут браться из двух источников. По умолчанию данные берутся из тела команды (то, что находится между (:plot:) и (:plotend:)). Однако, данные могут также читаться из прикрепленных файлов, для этого используется параметр curve.data.

    (:plot
    curve.data="Attach:example_5.txt"
    curve.ycol=2

    curve2.data="Attach:example_5.txt"
    curve2.ycol=3
    :)
    (:plotend:)

Для разных кривых данные могут браться из разных источников - или из разных прикрепленных файлов, или для одних кривых данные могут браться из тела команды, для других читаться из файла.
Дальнейшие параметры данных устанавливаются индивидуально для каждой кривой, т.е. используется запись вида curve.data.имя_параметра.

## Параметр curve.data.colsep

По умолчанию элементы каждой строки данных разделяются между собой любым количеством пробелов или символов табуляции. Вы можете изменить это поведение, задав другой разделитель с помощью параметра curve.data.colsep. Этот параметр принимает регулярное выражение. Значение по умолчанию этого параметра "\s+".
Следующий пример показывает, как сделать, чтобы элементы строки разделялись с помощью запятых и, возможно, пробелов.

    (:plot
    curve.data.colsep=",\s*"
    :)
    1, 10, 20, 30, 40
    2, 11, 22, 31, 41
    3, 13, 24, 33, 42
    4, 15, 25, 35, 43
    5, 16, 26, 36, 44
    6, 18, 27, 37, 45
    7, 20, 30, 38, 46
    8, 20, 30, 38, 46
    9, 20, 30, 38, 46
    10, 20, 30, 38, 46
    (:plotend:)

Учитывая особенность чтения данных, что пробелы всегда отбрасываются, предыдущий пример можно было бы сделать проще:

    (:plot
    curve.data.colsep=","
    :)
    1, 10, 20, 30, 40
    2, 11, 22, 31, 41
    3, 13, 24, 33, 42
    4, 15, 25, 35, 43
    5, 16, 26, 36, 44
    6, 18, 27, 37, 45
    7, 20, 30, 38, 46
    8, 20, 30, 38, 46
    9, 20, 30, 38, 46
    10, 20, 30, 38, 46
    (:plotend:)

## Параметр curve.data.skiprows

Иногда в начале файла с текстовыми данными пишут заголовок, который может описывать представленные данные. Для корректной работы плагина DataGraph либо нужно удалить эти строки, либо воспользоваться параметром curve.data.skiprows, который указывает, сколько строк нужно проигнорировать при чтении данных. Этот параметр работает как для данных, загружаемых из файла, так и для данных из тела команды (:plot:).

    (:plot
    curve.data.skiprows = 3
    :)
    Этот текст
    не нужен для
    построения графиков
    1    10    20    30    40
    2    11    22    31    41
    3    13    24    33    42
    4    15    25    35    43
    5    16    26    36    44
    6    18    27    37    45
    7    20    30    38    46
    8    20    30    38    46
    9    20    30    38    46
    10   20    30    38    46
    (:plotend:)

Также этот параметр можно использовать для того, чтобы некоторые начальные значения на графике.

    (:plot
    curve.data.skiprows = 3
    :)
    1    10    20    30    40
    2    11    22    31    41
    3    13    24    33    42
    4    15    25    35    43
    5    16    26    36    44
    6    18    27    37    45
    7    20    30    38    46
    8    20    30    38    46
    9    20    30    38    46
    10   20    30    38    46
    (:plotend:)

## Параметр curve.data.formatcol

Во всех приведенных выше примерах в качестве данных использовались числа с плавающей точкой, однако плагин DataGraph может строить графики и по календарным данным. Для этого с помощью параметра curve.data.formatcol нужно указать, в каком формате записаны календарные данные. Параметр curve.data.formatcol[n] в качестве значения принимает строку в формате, используемом во многих языках программирования для форматирования дат. Этот формат состоит из символов, следующих после символа "%". Значения этих символов, показаны в следующей таблице:

Символ | Значение | Пример
%a | День недели сокращенно (используется локализация) | Пн., Вт.,..., Вс. (для ru_RU), Sun, Mon, ..., Sat (для en_US)
%A | День недели полностью (используется локализация) | Понедельник, Вторник, ..., Воскресенье (для ru_RU), Sunday, Monday, ..., Saturday (для en_US)
%w | Номер для недели от 0 (воскресенье) до 6 (суббота) | 0, 1,... 6
%d | Двухзначное число месяца | 01, 02,... 31
%b | Название месяца сокращенно (используется локализация) | Янв., Фев., ..., Дек. (для ru_RU), Jan, Feb, ..., Dec (для en_US)
%B | Название месяца полностью (используется локализация) | Январь, Февраль,..., Декабрь (для ru_RU), January, February, ..., December (для en_US)
%m | Двухзначный номер месяца | 01, 02, ..., 12
%y | Последние две цифры года | 00, 01, 99
%Y | Год полностью | 1917, 2000, 2015
%H | Двухзначное значение часа в 24-часовом формате | 00, 01, ..., 23
%I | Двухзначное значение часа в 12-часовом формате | 00, 01, ..., 12
%p | Сокращенное обозначение "до полудня" / "после полудня" (используется локализация) | AM, PM (для en_US)
%M | Двухзначное количество минут | 00, 01, ..., 59
%S | Двухзначное количество секунд | 00, 01, ..., 59
%f | Шестизначное количество микросекунд | 000000, 000001, ..., 999999
%j | Трехзначный номер дня в году | 001, 002, ..., 366
%U | Номер недели в году | 00, 01, ..., 53
%c | Формат представления даты и времени в соответствии с локализацией | Вт. 06 янв. 2015 10:23:25 (для ru_RU), Tue Aug 16 21:30:00 1988 (для en_US)
%x | Формат представления даты в соответствии с локализацией | 06.01.2015 (для ru_RU), 08/16/1988 (для en_US)
%X | Формат представления времени в соответствии с локализацией | 10:26:16 (для ru_RU и en_US)

Для каждого столбца может быть установлен свой формат данных, поэтому параметр используется в виде curve.data.formatcol1, curve.data.formatcol2 и т.д.

> Чтобы использовать календарный тип данных, также необходимо для оси, по которой будут откладываться, календарные данные установить параметру type значение "datetime".

    (:plot
    curve.data.formatcol1="%d.%m.%Y"
    x.type="datetime"
    :)
    01.01.2014    0
    01.02.2014    2
    01.03.2014    10
    01.04.2014    15
    01.05.2014    13
    01.06.2014    15
    01.07.2014    16
    01.08.2014    20
    01.09.2014    20
    01.10.2014    18
    01.11.2014    22
    01.12.2014    24
    (:plotend:)