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

* [[Общие сведения о кривых -> #intro]]
* [[Параметры ''curve.xcol'' / ''curve.ycol'' -> #col]]
* [[Параметр ''curve.data'' -> #data]]
* [[Параметр ''curve.color'' -> #curve.color]]
* [[Параметр ''curve.style'' -> #style]]
* [[Параметр ''curve.hide'' -> #hide]]
* [[Параметр ''curve.title'' -> #title]]


!!! [[#intro]] Общие сведения о кривых

Под кривыми понимаются линии, которые соединяют точки, координаты которых заданы данными. Кривых на графике может быть неограниченное количество, при этом для задания параметров кривые имеют имена ''curve1'', ''curve2'' и т.д.; ''curve1'' можно называть просто ''curve''.

Простейший способ построить график - это задать данные в тексте викистраницы, внутри команды ''plot''. Рассмотрим команду:

[@(:plot:)
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:)
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:)

Поскольку мы не задали никаких параметров, а в данных содержится больше одного столбца, то в качестве координат точек по оси X используется первый столбец, а в качестве координат Y - второй. Для того, чтобы создать вторую кривую, достаточно установить какой-либо параметр для нее, что будет показано далее.

----


!!! [[#col]] Параметры ''curve.xcol'' / ''curve.ycol''

Добавим вторую кривую, для которой координаты точек по оси Y задает третий столбец. Для этого используется параметр ''curve.ycol''.

[@(:plot
curve2.ycol = 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
curve2.ycol = 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:)

----

Аналогично можно изменить столбец с координатами Y для первой кривой, например, следующим образом:

[@(:plot
curve1.ycol = 4
curve2.ycol = 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
curve1.ycol = 4
curve2.ycol = 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:)

----

В предыдущем примере вместо ''curve1.ycol = 4'' можно было бы написать просто ''curve.ycol = 4''.

Аналогично с помощью параметра ''curve.xcol'' можно задавать столбец для координаты X:

[@(:plot
curve1.xcol = 2
curve1.ycol = 4
:)
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
curve1.xcol = 2
curve1.ycol = 4
:)
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:)

----

Если столбец в данных единственный, то по умолчанию считается, что он задает координаты Y, а по оси X откладываются числа 0, 1, 2,... Например:

[@(:plot:)
40
41
42
43
44
45
46
46
46
46
(:plotend:)@]

(:plot:)
40
41
42
43
44
45
46
46
46
46
(:plotend:)

----

Если столбцов несколько, то аналогичного результата для оси X можно добиться, установив значение ''curve.xcol = number'':

[@(:plot
curve1.xcol = number
curve1.ycol = 4
:)
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
curve1.xcol = number
curve1.ycol = 4
:)
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:)

----

!!! [[#data]] Параметр ''curve.data''

В предыдущих примерах данные для графиков были вставлены непосредственно в текст страницы, но это может быть не удобно, если данных много. Поэтому данные могут читаться из прикрепленных файлов. В этом случае файл хранит данные в том же формате, что использовался ранее в примерах. Например, прикрепленный к этой странице файл [[Attach:example_5.txt]], и который будет использоваться в этом разделе, содержит следующие строки:

[@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@]

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

[@(:plot
curve.data="Attach:example_5.txt"
:)
(:plotend:)@]


(:plot
curve.data="Attach:example_5.txt"
:)
(:plotend:)

Поскольку в значении параметра встречается символ ":", здесь необходимы кавычки.

----

При этом остальные параметры работают точно также. Например:

[@(:plot
curve.data="Attach:example_5.txt"
curve.xcol=1
curve.ycol=2

curve2.data="Attach:example_5.txt"
curve2.xcol=1
curve2.ycol=3
:)
(:plotend:)@]


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

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

----

!!! [[#curve.color]] Параметр ''curve.color''

Чтобы изменить цвет кривой, используется параметр ''curve.color''. Цвет задается теми же способами, как это принято в HTML. Например:

[@(:plot
curve.color="#1CE81C"
curve.ycol=2

curve2.color="#0BA"
curve2.ycol=3

curve3.color="rgb(180, 64, 180)"
curve3.ycol=4

curve4.color="black"
curve4.ycol=5
:)
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.color="#1CE81C"
curve.ycol=2

curve2.color="#0BA"
curve2.ycol=3

curve3.color="rgb(180, 64, 180)"
curve3.ycol=4

curve4.color="black"
curve4.ycol=5
:)
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:)

----


!!! [[#style]] Параметр ''curve.style''

С помощью параметра ''curve.style'' можно задавать тип линий: сплошная линия, штриховая, пунктирная, штрихпунктирная и т.п.

Параметру ''curve.style'' можно присваивать либо строковое значение, описывающее тип линии, либо номер этого стиля. Возможные значения показаны в следующей таблице:

|| border=1
|| '''Номер стиля''' || '''Название стиля''' ||
||1 ||solid ||
||2 ||longdash ||
||3 ||shortdash ||
||4 ||shortdot ||
||5 ||shortdashdot ||
||6 ||shortdashdotdot ||
||7 ||dot ||
||8 ||dash ||
||9 ||dashdot ||
||10 ||longdashdot ||
||11 ||longdashdotdot ||

Например:

[@(:plot
curve.style="longdash"
curve.ycol=2

curve2.style=3
curve2.ycol=3

curve3.style="dashdot"
curve3.ycol=4

curve4.style="1"
curve4.ycol=5
:)
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.style="longdash"
curve.ycol=2

curve2.style=3
curve2.ycol=3

curve3.style="dashdot"
curve3.ycol=4

curve4.style="1"
curve4.ycol=5
:)
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.style'' может принимать значение ''auto'', который обозначает, что кривой присваивается номер стиля в соответствии с ее номером (если кривых больше 11, стили циклически повторяются).

Например:

[@(:plot
curve.style=auto
curve.ycol=2

curve2.style=auto
curve2.ycol=3

curve3.style=auto
curve3.ycol=4

curve4.style=auto
curve4.ycol=5
:)
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.style=auto
curve.ycol=2

curve2.style=auto
curve2.ycol=3

curve3.style=auto
curve3.ycol=4

curve4.style=auto
curve4.ycol=5
:)
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:)

----

!!! [[#hide]] Параметр ''curve.hide''

Если нужно временно скрыть какую-либо кривую, не удаляя все упоминания ее из параметров команды ''plot'', можно воспользоваться параметром ''curve.hide''. В следующем примере установлены параметры для четырех кривых, но вторая из них скрыта. В этом примере также для наглядности используется параметр [[legend -> page://__9b833dea-895e-4867-a3a4-0cfb5915ebab/#legend]].

[@(:plot
curve.ycol=2
curve2.ycol=3
curve3.ycol=4
curve4.ycol=5
legend

curve2.hide
:)
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.ycol=2
curve2.ycol=3
curve3.ycol=4
curve4.ycol=5
legend

curve2.hide
:)
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.hide=0'', то данный параметр будет игнорироваться, и кривая не будет скрываться.

----

!!! [[#title]] Параметр ''curve.title''

[[Выше -> #hide]] использовался параметр [[legend -> page://__9b833dea-895e-4867-a3a4-0cfb5915ebab/#legend]], отображающий легенду. Разумеется, названия кривых в легенде можно менять, для этого служит параметр ''curve.title''.

[@(:plot
curve.ycol=2
curve.title = "Первая кривая"

curve2.ycol=3
curve2.title = "Вторая кривая"

curve3.ycol=4
curve3.title = "Третья кривая"

legend
:)
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.ycol=2
curve.title = "Первая кривая"

curve2.ycol=3
curve2.title = "Вторая кривая"

curve3.ycol=4
curve3.title = "Третья кривая"

legend
:)
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:)
