Visual settings (2D)
This page lists all settings applicable to 2D visual objects. To adjust a particular object’s settings, use the AdjustVisual
function and specify a reference to the object.
See Visual settings (3D) for the settings applicable to 3D visual objects.
Table of contents
Diagrams

Axes

Axis collections

Grid line families

Grid line family collections

Views

Diagrams
Objects

Bar charts

Pie charts

Legends

Categories

Histograms

XY plots (scatter plots, line charts, area charts)

Vector fields

Heat maps (scalar fields)

Text boxes

Line segments

Line endings

Rectangles

Circles and disks

Polygons

Pixmaps
Common

Metadata

Window size
Axes
Each axis has the following properties:

automatic
: boolean 
color
: colour 
axmin
: real number 
axmax
: real number 
number distance
: positive number 
number format
: string 
numbers visible
: boolean 
position
: real number (the position of this axis along the opposite axis) 
width
: real number 
text offset
: real number 
tick distance
: positive number 
tick length
: positive integer 
tick width
: positive integer 
tick color
: colour 
ticks visible
: boolean 
visible
: boolean
A vertical axis has the following additional properties:

rotate text
: boolean (iftrue
, its label, if present, will be rotated 90°)
If d
is a reference to a diagram, then d.axes.x
is a reference to its horizontal axis and d.axes.y
a reference to its vertical axis.
Graphical user interface:
Axis collections
An axis collection has no properties of its own, but contains subreferences to the individual axes. If d
is a reference to a diagram, then d.axes
is a reference to its collection of axes. Valid subreferences are x
and y
.
Graphical user interface:
Grid line families
Each grid line family has the following properties:

distance
: positive number 
axmin
: real number 
axmax
: real number 
line start
: real number 
line end
: real number 
visible
: boolean 
width
: positive integer 
color
: colour
If d
is a reference to a diagram, then

d.grids.horizontal

d.grids.horizontal2

d.grids.vertical

d.grids.vertical2

d.grids.radial

d.grids.radial2

d.grids.circular
are references to its grid lines families.
Graphical user interface:
Grid line family collections
A grid line family collection has no properties of its own, but contains subreferences to the individual grid line families. If d
is a reference to a diagram, then d.grids
is a reference to its collection of grid line families. Valid subreferences are horizontal
, horizontal2
, vertical
, vertical2
, radial
, radial2
, and circular
.
Graphical user interface:
Views
Each diagram has a unique view
subobject that determines the bounds of the scene in space coordinates.
The view
subobject has the following properties:

xmin
: real number 
xmax
: real number 
ymin
: real number 
ymax
: real number 
center point
: 2D point
Setting the center point
parameter simply adjusts the xmin
, xmax
, ymin
, and ymax
properties so that the scene becomes centred at the specified point but retains its original width and height.
If d
is a reference to a diagram, then d.view
is a reference to its view subobject.
Graphical user interface:
Diagrams
A diagram has no properties of its own, but, as discussed above, contains subobjects with configurable properties (view, axes, grid lines).
Its graphical user interface combines the GUIs of its subobjects:
The screenshot above is from an empty diagram. If a diagram contains objects (charts, plots), they will also be listed to the left.
The GUI also contains a special page named “Objects” that gives an overview of the objects the diagram contains, lets you toggle the visibility of each object, remove objects, reorder them, and assign metadata properties to them:
If d
is a reference to a diagram, then d.objects
is a reference to its object manager.
Bar charts
A bar chart has the following properties:

legend
: boolean 
labels
: boolean 
label position
: real number 
value labels
: boolean 
value label position
: real number 
value format
: string 
bar offset
: real number 
bar width
: real number 
bar spacing
: real number
If a label position is in [0, 1], it is treated as a fraction of the bar height. If it is greater (less) than 1, it is treated as a fixed number of pixels above (below) the bar.
In the three examples below, the label positions are −8, 8, and 0.5, respectively:
Graphical user interface:
If b
is a reference to a bar chart, then d.legend
is a reference to its legend. Similarly, b.Cat
is a reference to the category that initially was labelled “Cat”.
Pie charts
A pie chart has the following properties:

legend
: boolean 
labels
: boolean 
label position
: real number 
value labels
: boolean 
value label position
: real number 
value format
: string 
start angle
: real number 
x
: real number 
y
: real number 
position
: 2D point 
radius
: positive number
x
and y
are the coordinates of the centre point of the pie chart. position
is the same thing but represented as a single vector.
If a label position is in [0, 1], it is treated as a fraction of the radius. If it is greater than 1, it is treated as a fixed number of pixels from the slice (radially).
Graphical user interface:
If p
is a reference to a pie chart, then p.legend
is a reference to its legend. Similarly, p.Cat
is a reference to the category that initially was labelled “Cat”.
Legends
If r
is a reference to either a bar chart or a pie chart, then r.legend
is a reference to its legend. This has the following properties:

line color
: colour 
line width
: nonnegative integer 
fill color
: colour 
fill opacity
: real number in [0, 1]
Graphical user interface:
Categories
If r
is a reference to either a bar chart or a pie chart, then r.Cat
is a reference to the category initially labelled “Cat”. This has the following properties:

label
: string 
value
: real number 
line color
: colour 
line width
: nonnegative integer 
fill color
: colour 
fill opacity
: real number in [0, 1] 
displacement
: the fractional displacement of the category relative to the other categories, typically a value in [0, 1]. Currently only pie charts support such displacements.
Graphical user interface:
The category settings GUI can also be accessed from the parent category chart’s settings:
Histograms
A histogram has the following properties:

line color
: colour 
line width
: nonnegative integer 
fill color
: colour 
fill opacity
: real number in [0, 1] 
bin width
: positive number 
start at
: real number
Notice that the bin width
and start at
parameters affect much more than the mere aesthetics of the chart.
Graphical user interface:
XY plots
The functions ScatterPlot
, LinePlot
/ LineChart
, AreaChart
, and plot
all produce XY plots, albeit with different initial settings.
An XY plot has the following properties:

points
: boolean 
lines
: boolean 
area
: boolean 
point size
: positive integer 
line color
: colour 
line width
: nonnegative integer 
fill color
: colour 
fill opacity
: real number in [0, 1]
Initially, out of the three booleans, a scatter plot has only points
set to true
. Similarly, a line (area) plot has only lines
(area
) set to true
.
Graphical user interface:
Vector fields
A vector field has the following properties:

arrow scale
: positive real number 
use magnitude
: boolean 
line color
: colour 
line width
: nonnegative integer 
fill color
: colour 
fill opacity
: real number in [0, 1]
The arrows are always drawn with the direction of the vector field. If use magnitude
is true
, their lengths are proportional to the local magnitude of the field; otherwise, they are all drawn with the same size. arrow scale
adjusts the size of all arrows by this same factor.
Graphical user interface:
Heat maps
A heat map has the following properties:

line color
: colour 
line width
: nonnegative integer 
fill opacity
: real number in [0, 1]
The “line” refers to the rectangular outer border of the object.
Text boxes
A text box has the following properties:

line color
: colour 
line width
: nonnegative integer 
fill color
: colour 
fill opacity
: real number in [0, 1] 
text
: string 
font name
: string 
font size
: positive integer 
bold
: boolean 
italic
: boolean 
underline
: boolean 
strikethrough
: boolean 
text color
: colour 
boxed
: boolean 
position
: 2D real vector 
width
: positive real number 
height
: positive real number 
use rect
: boolean 
anchor point
: one of "topleft", "top", "topright", "left", "center", "right", "bottomleft", "bottom", "bottomright" 
zoom text
: boolean 
zoom rect
: boolean; 
alignment
: one of "left", "center", "right" 
vertical alignment
: one of "top", "center", "bottom" 
text anchor point
: one of "topleft", "top", "topright", "left", "center", "right", "bottomleft", "bottom", "bottomright"
Graphical user interface:
Line segments
A line segment has the following properties:

start
: 2D point 
end
: 2D point 
line color
: colour 
line width
: nonnegative integer
In addition, if L
is a reference to a line segment, then L.start
and L.end
are references to its line ending objects.
Graphical user interface:
Line endings
A line ending has the following properties:

shape
: one of "none", "line arrow", "triangle", "semiarrow", "disk", "square", "square 2", "bar", or "broken" 
filled
: boolean 
size x
: positive real number 
size y
: positive real number 
size
: positive real number 
line width
: positive integer 
color
: colour 
line color
: boolean (use same colour as the line having this object as an ending)
If L
is a reference to a line segment, then L.start
and L.end
are references to its line ending objects.
Rectangles
A rectangle has the following properties:

top
: real number 
left
: real number 
right
: real number 
bottom
: real number 
rotation
: real number (angle in radians, rotation about topleft corner) 
line color
: colour 
line width
: nonnegative integer 
fill color
: colour 
fill opacity
: real number in [0, 1]
Circles and disks
A circle or disk has the following properties:

position
: 2D vector 
radius
: positive real number 
line color
: colour 
line width
: nonnegative integer 
fill color
: colour 
fill opacity
: real number in [0, 1]
Mathematically, the difference between a circle and a disk is that a circle is a curve while a disk is a twodimensional region having a circle as its boundary. The difference between the circle
and the disk
function is that the disk
function returns an object with fill opacity 100%, while the circle
function returns the same kind of object but with a fill opacity of 0%.
Polygons
A polygon has the following properties:

vertices
: list of 2D points or n×2 real matrix 
line color
: colour 
line width
: nonnegative integer 
fill color
: colour 
fill opacity
: real number in [0, 1]
Pixmaps
An embedded pixmap has the following properties:

pixmap
: pixmap 
x
: real number 
y
: real number 
position
: 2D real vector 
width
: positive real number 
height
: positive real number 
line color
: colour 
line width
: nonnegative integer 
fill opacity
: real number in [0, 1]
Metadata
Every visual object has a title and a description. These may be set using the following properties:

title
: string 
description
: string
These properties are used, for instance, when diagrams are exported as SVG images.
Window size
Every visual object has two special properties, window width
and window height
, that, when set, alter the size of the window currently containing the object, assuming the diagram containing the object is not docked in the main IDE.
If the diagram is docked in the main IDE, it is first detached and then its new, floating, window is resized.

window width
: integer 
window height
: integer
You can also specify the size of a floating diagram window using the Window size dialog.
Every visual object also has the detached
boolean property which determines if the diagram containing the object is detached (has its own window) or docked in the IDE; this only applies to named diagrams, however.

detached
: boolean
Finally, every visual object has the auto normalize
property. When set to true
, the diagram containing it will be set to automatic normalization, meaning that the logical view will adapt according to the window size so that one unit in the horizontal direction will correspond to the same physical onscreen distance as one unit in the vertical direction. This normalization is automatically reapplied when the window is resized.

auto normalize
: boolean