Plot/Multi

From J Wiki
Jump to navigation Jump to search
Plot | Verbs | Class Commands Data Options Outputs Types | Colors Fonts Keys Text YAxes | Function Multi Shape

The multi command creates a multiplot in the current subwindow, sets plot defaults.

A multiplot is an array of plots that typically have their axes linked in some way. The commands xgroup and ygroup link x and y axes.

  • If two plots have the same xgroup value, then their x-axes have the same range. If the plots are also in the same column, then the x-axes are lined up and have the same labels.
  • If two plots have the same ygroup value, then their y-axes have the same range. If the plots are also in the same row, then the y-axes are lined up and have the same labels.

Apart from linking axes, each plot is drawn independently.

The parameter to multi has two forms:

1. a pair of numbers: rows, columns. This sets up a multiplot array using equal divisions of the current window for each element of the shape.

For example:

pd 'multi 2 3'

creates a 2 row by 3 column multiplot.

2. a pair of lists, separated by comma: relative size of each row, relative size of each column

For example:

pd 'multi 4 2, 1 1 2'

creates a 2 row by 3 column multiplot. The first row has twice the height of the second, and the last column has twice the width of the first two columns.

Options

The multi command should be followed by zero or more options, then the data for the multiplot. The options are the same as before, with the following extensions:

Axis groups

xgroup sets the xgroups for the multiplots.

pd 'xgroup keylist'

The default for a multiplot of shape r c is:

pd 'xgroup ',": ,i. r,c'

Here, keylist is either a single number, or a list of length c, or list of length r * c. Plots with the same key value are drawn to the same x group.

ygroup sets the ygroups for the multiplots.

pd 'ygroup keylist'

The default for a multiplot of shape r c is:

pd 'ygroup ',": ,i. r,c'

Here, keylist is either a single number, or a list of length r, or list of length r * c. Plots with the same key value are drawn to the same y group.

For example:

a) all graphs independent (the default)

pd 'xgroup ',": ,i.r,c'
pd 'ygroup ',": ,i.r,c'

b) all graphs in a row have the same y axis and all graphs in a column the same x axis

pd 'xgroup ',": i.c
pd 'ygroup ',": i.r

c) all graphs with the same axes.

pd 'xgroup 0'
pd 'ygroup 0'

d) A cross shaped pattern:

pd 'xgroup 0 1 0 2 1 3 0 1 0'
pd 'ygroup 0 1 0 2 2 2 0 3 0'

Captions

The following gives captions for each column, and similarly for each row:

pd 'xcaption "col 1" "col 2" "col3"'

Keys

An initial Key definition is for the entire multiplot and must be an outside key.

Each plot may also have its own Key definition.

Data

The data for a multiplot is a boxed list, with one item for each plot.

Each item is either a 2-element list, or a 2-column table of: options;data, where:

  • option is a list of options, either as a LF or ';' delimited list, or as a matrix. These options are applied in addition to any options given already. The option list may include text commmands, but other commands are ignored. Second Y axes are not supported in multiplots, and font commands other than symbolfont and textfont are applied to each subplot.
  • data is a data set in the normal form for pd.

Restrictions

Second Y axes and 3D plots are not yet supported in multiplots.