Оглавление раздела
Общие сведения о кривых
Под кривыми понимаются линии, которые соединяют точки, координаты которых заданы данными. Кривых на графике может быть неограниченное количество, при этом для задания параметров кривые имеют имена 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:)
Результат будет выглядеть следующим образом:
Поскольку мы не задали никаких параметров, а в данных содержится больше одного столбца, то в качестве координат точек по оси X используется первый столбец, а в качестве координат Y - второй. Для того, чтобы создать вторую кривую, достаточно установить какой-либо параметр для нее, что будет показано далее.
Параметры 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:)
Аналогично можно изменить столбец с координатами 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:)
В предыдущем примере вместо 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:)
Если столбец в данных единственный, то по умолчанию считается, что он задает координаты Y, а по оси X откладываются числа 0, 1, 2,... Например:
(: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:)
Параметр curve.data
В предыдущих примерах данные для графиков были вставлены непосредственно в текст страницы, но это может быть не удобно, если данных много. Поэтому данные могут читаться из прикрепленных файлов. В этом случае файл хранит данные в том же формате, что использовался ранее в примерах. Например, прикрепленный к этой странице файл 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"
curve.xcol=1
curve.ycol=2
curve2.data="Attach:example_5.txt"
curve2.xcol=1
curve2.ycol=3
:)
(:plotend:)
Параметр 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:)
Параметр curve.style
С помощью параметра curve.style можно задавать тип линий: сплошная линия, штриховая, пунктирная, штрихпунктирная и т.п.
Параметру curve.style можно присваивать либо строковое значение, описывающее тип линии, либо номер этого стиля. Возможные значения показаны в следующей таблице:
Номер стиля |
Название стиля |
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:)
Кроме того, параметр 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:)
Параметр curve.hide
Если нужно временно скрыть какую-либо кривую, не удаляя все упоминания ее из параметров команды plot, можно воспользоваться параметром curve.hide. В следующем примере установлены параметры для четырех кривых, но вторая из них скрыта. В этом примере также для наглядности используется параметр 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:)
Если установить параметр curve.hide=0, то данный параметр будет игнорироваться, и кривая не будет скрываться.
Параметр curve.title
Выше использовался параметр 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:)