SVGGraph options: marker_type
- Option name:
marker_type
- Default value:
"circle"
- Added in version:
- 1.0
- Data type:
- string [?]
The datatypes used in this documentation for specifying SVGGraph options are described below. All options can be a literal value of the data type described, a variable containing the data type, or an expression that will produce the data type when evaluated (and they must always be valid PHP expressions).
- array
- An
array
, the number and data types of its members will depend on the option for which is it used. - boolean
- A boolean
TRUE
orFALSE
value, or any values that convert easily such as1
,"1"
,0
and""
. - callback
- A callable function, which can be either the name of a function or an anonymous function itself.
- colour
- Any of the colour values supported by SVG inside a single or double
quoted string. These include three and six digit hex codes, RGB and
RGBA colours, and colour names. SVG uses
"none"
for no colour, which generally leaves things transparent. - fill
- A colour value or one of the gradients and patterns supported by SVGGraph. See the SVGGraph colours page for details.
- integer
- A negative or positive whole number or
0
. - measurement
- An
integer
orfloat
value, or a string containing a number followed by one of these CSS units:px
,in
,cm
,mm
,pt
,pc
. - number
- Any number supported by PHP, for example
1
or-3.2
or1.63e5
orM_PI
. - string
- Single or double quoted strings. Remember to double-quote your strings
if you are inserting a line break:
"Line 1\nLine 2"
.
- Per-dataset:
- yes [?]
Per-dataset options allow specifying one option for all datasets or an array of options to be used for each dataset in turn. If there are more datasets than entries in the option array, the sequence will be repeated.
Example:
$settings['widget_taste'] = 'banana'; $settings['widget_colour'] = array( 'red', 'green', 'blue' );
For this example, the widgets for all datasets will taste of banana. The graph will use red widgets for dataset 0, green widgets for dataset 1 and blue widgets for dataset 2. Dataset 3 repeats the sequence so its widgets will be red, dataset 4 will have green widgets and dataset 5 will have blue widgets.
- Structure:
- yes [?]
Structure options may also be used as fields in the
structure
option's array to specify overriding settings for each data item. For more details and examples, visit the structured data page.Example:
$settings['widget_grunge'] = 'very'; $settings['structure'] = array( 'key' => 0, 'value' => 1, 'widget_grunge' => 2 );
In this example widgets will be
very
grungy, except when a non-null item with the key 2 in the structured data array sets the grunginess to a different value. - Supported by:
- BarAndLineGraph BoxAndWhiskerGraph LineGraph MultiLineGraph MultiRadarGraph MultiScatterGraph MultiSteppedLineGraph RadarGraph ScatterGraph StackedBarAndLineGraph StackedLineGraph SteppedLineGraph
- Tags:
Shape of markers.
This option specifies the type of marker to display for line, radar and scatter graphs. The standard types of marker available are:
"circle"
,"square"
,"triangle"
,"cross"
,"x"
,"pentagon"
,"diamond"
,"hexagon"
,"octagon"
,"asterisk"
,"star"
,"threestar"
,"fourstar"
and"eightstar"
Example:
$settings['marker_type'] = array('diamond', 'x', 'square');
This will draw diamond-shaped markers for dataset 0, "x"-shaped markers for dataset 1 and square markers for dataset 2.
Image markers
The marker_type
option also supports image-based markers. The value of the
option should be a string containing "image:"
followed by the path to the
image to be used as a marker:
$settings['marker_type'] = 'image:/images/marker1.png';
This example will use an image called "marker1.png" as the marker. If the image does not exist, the browser will either display a broken image icon or nothing at in place of the marker - check the error console for clues when this happens, as you may have the path to the image incorrect.
Image markers can be used along with standard markers in a per-dataset array:
$settings['marker_type'] = array(
'square',
'image:/images/marker1.png',
'cross',
'image:/images/marker2.png',
'circle'
);
This example will use the standard square, cross and circle markers for datasets 0, 2 and 4, and images for datasets 1 and 3.
Figure markers
Version 2.30 added support for figures - user-defined shapes that can be used
as shapes or markers. To use a figure as a marker, create the figure
and then
reference it in the marker_type
as "figure:name of figure":
$settings['marker_type'] = array(
'square',
'figure:mona lisa',
'cross',
);
This example uses standard square and cross markers for datasets 0 and 2, and a figure called "mona lisa" as the marker for dataset 1. I've omitted the code that renders the Mona Lisa as a figure because I have better things to do with my life.
Custom markers
From version 2.24 SVGGraph also supports user-defined markers drawn using your
own SVG content - just start the marker_type
string with a "<
" less-than
angle bracket:
$settings['marker_type'] = '<rect x="-3.5" y="-1.5" width="7" height="3"/>';
This will use a 7 pixel by 3 pixel rectangle as the marker. Note that the
position of the marker hotspot is at (0,0)
, so the X and Y coordinates of the
rectangle are negative to centre the rectangle at the origin.
A marker shape is stored as a <symbol>
in the <defs>
section of the document
and replicated multiple times on the graph with <use>
elements. This means
that the SVG code of the marker can be quite complex without drastically
affecting the size of the SVG document.
Custom markers can be used anywhere that standard or image markers are supported.