Cartesian and Grid Plots¶
Plots of the following sub-families: General plots, Stat plots and Finance plots represent data by using a Cartesian chart or by dividing the space into a grid, which can be populated by pie, doughnut or funnel area charts.
This type of plot is made up of multiple components, which are explained in the sections below, each controlling different aspects of its configuration.
See also
These plots are exactly the same as those available in Rulex Factory Data Manager. For more information, see this page
Plot Modebar¶
The plot modebar is located in the top-right corner of the plot, and it appears when hovering over this area with the cursor.
The modebar allows users to change the display options of the plot, such as zooming in/out, selecting certain elements to highlight them, or panning in on specific areas.
Click here to know more about the modebar options.
Note
Not all Plots have the same modebar options described above; users can verify the available ones for a specific plot by simply hovering over the modebar area.
Layout Options¶
In the Layout options window, which appears when clicking the Open widget layout, users will find the same plot configuration tabs as in Rulex Factory, except for the SELECTION tab, which is specific of Rulex Studio Plots. The tabs are:
In the list above, users will be redirected to Rulex Factory corresponding pages if the tabs are in common.
Selection tab
The Selection tab is made up of the following options:
- Plot selection: it enables or disables the selection operation. The possible values are:
Enabled - the selection triggers a Data Filtering or Data Selection operation on the Widgets specified in the Scope field.
Disabled - the selection does not have any other effect except the simple graphical one.
- Action type: it defines the operation that will be performed on the selection trigger. The two options are:
Filter - it performs a Data Filtering operation.
Selection - if performs a Data Selection operation.
- Event type - it defines the trigger type for the selection/filter. The available values are:
Hover - the data will be selected/filtered when hovering over the plot.
Click - the data will be selected/filtered when clicking on the plot.
Both - the data will be selected/filtered when clicking or hovering over the plot.
Scope - here, users will type the widget names on which the selection/filter will be applied. It is also possible to choose the widgets from the popup which opens by clicking the button next to the Scope box.
To know more about the Scope, look at this section.
Note
In addition to trigger a possible Selection operation, Plots also display the selection effect performed by another widget.
Cartesian and Grid Plot Schema¶
A Cartesian or grid is completely described through a JSON object composed by 4 different areas:
input, retaining the information about the linked attributes.
options, retaining all the graphical and functional options which requires a re-evaluation of the plot output/points.
layout, the rest of the graphical options which do not require a re-evaluation of the plot.
data, the plot output.
The whole JSON object is saved as a GOLD dictionary in the layout field of the Plot class.
The schema of the JSON object is presented in YAML format commented. The name of the plot on the external level means the part contained is custom for the current plot type.
layout:
title:
font: #object color family size
pad: #object containing b,l,r,t for padding in the four direction
text:
x: #set the title position with respect to xref in plot fraction
xanchor: #x alignment one of (auto/left/center/right)
xref: #one of (container/paper); container all width paper only plotting area
y: #set the title position with respect to yref in plot fraction
yanchor: #y alignment one of (auto/top/middle/bottom)
yref: #one of (container/paper)
showlegend:
legend:
bgcolor: #legend baground color
bordercolor:
borderwidth:
font: #object color family size
groupclick: toggleitem #one of (toggleitem/togglegroup)
itemclick: toggleothers #one of (toggle/toggleothers/false)
itemdoubleclick: toggle #one of (toggle/toggleothers/false)
itemsizing: costant #one of (trace/constant)
itemwidth: #set the width in px of the legend item symbol (max 30)
orientation: #one of (v,h)
title:
font: #object with color family size
side: #one of (top/left/top left)
text:
tracegroupgap:
traceorder: #one of (normal/reversed/grouped or combination of it with +)
uirevision: #force the legend to re-render
valign: #vertical alignment one of (middle/top/bottom)
x: # x position of the legend number between -2 and 3
xanchor: #one of (auto/left/center/right)
y: # y position of the legend number between -2 and 3
yanchor: #one of (auto/top/middle/bottom)
margin:
autoexpand: true #if false turn off margin expansion to allow to see legends, colorbars, updatemenus, sliders, axis rangeslector, rangeslider
b:
l:
r:
t:
pad: #set the amount of padding (in px) between the plotting area and the axis lines
autosize:
width:
height:
font: #set the global font object with color, family, size
paper_bgcolor: #backgroud color for the whole plot
plot_dbcolor: #background color for the plotting area between the axis
colorscale:
diverging: #default diverging colorscale (used with autocolorscale)
sequential: #default sequential colorscale with positive number (used with autocolorscale)
sequentialminus: #default sequential colorscale with negative number (used with autocolorscale)
colorway: # default trace colors
modebar:
activecolor: #color for the active or hovered icons in the modebar
add: #not predefined modebar buttons to add; a list of strings among (v1hovermode, hoverclosest, hovercompare, togglehover, togglespikelines, drawline, drawopenpath, drawclosedpath, drawcircle, drawrect, eraseshape)
bgcolor: #background color of the modebar
color: #color of the icons in the modebar
orientation: #v|h
remove: #prederined modebar buttons to remove; a list of string among ("autoScale2d", "autoscale", "editInChartStudio", "editinchartstudio", "hoverCompareCartesian", "hovercompare", "lasso", "lasso2d", "orbitRotation", "orbitrotation", "pan", "pan2d", "pan3d", "reset", "resetCameraDefault3d", "resetCameraLastSave3d", "resetGeo", "resetSankeyGroup", "resetScale2d", "resetViewMapbox", "resetViews", "resetcameradefault", "resetcameralastsave", "resetsankeygroup", "resetscale", "resetview", "resetviews", "select", "select2d", "sendDataToCloud", "senddatatocloud", "tableRotation", "tablerotation", "toImage", "toggleHover", "toggleSpikelines", "togglehover", "togglespikelines", "toimage", "zoom", "zoom2d", "zoom3d", "zoomIn2d", "zoomInGeo", "zoomInMapbox", "zoomOut2d", "zoomOutGeo", "zoomOutMapbox", "zoomin", "zoomout")
uirevision: #force the modebar to re-render
clickmode: "event+select"
dragmode: "select"
hoverlabel: #object to customize the hoverbox which appears with hover
align: #one of (auto/left/right)
bgcolor:
bordercolor:
font: #object with color family size
namelength: #max number of character shown in the label (then added an ellipsis)
datarevision: #changed value should re-render plotly traces
uirevision: #used to force re-render of the layout
grid:
columns: #number of subplots columns
rows: #number of subplots rows
domain:
x: #horizontal domain of the subplot in plot fraction
y: #vertical domain of the subplot in plot fraction
pattern: #one of (coupled/indipendent) coupled one xaxis for column and one yaxis for row, indipendente one couple for subplot
roworder: #one of (top to bottom/bottom to top)
subplots: #used in freeform grid where some axes are shared across subplots array of "xy" or "x3y2" or "" to leave that cell empty
xaxes: #used without subplots to specify the x axis correct for each column
xgap: #gap between subplots on x
yaxes: #used without subplots to specify the y axis correct for each column
ygap: #gap between subplots on y
bargap: #gap between bars (in plot fraction)
bargroupgap: #gap between bars in group (grouped bar plot) (in plot fraction)
barmode: #one of (group/stack/overlay/relative)
barnorm: #one of (""/fraction/percent)
piecolorway: #colorway only used for pie
xaxis:
anchor: #axis to which is bound or free and then position is set by position
automargin:
autorange:
categoryorder: # one of ( "trace" | "category ascending" | "category descending" | "array" | "total ascending" | "total descending" | "min ascending" | "min descending" | "max ascending" | "max descending" | "sum ascending" | "sum descending" | "mean ascending" | "mean descending" | "median ascending" | "median descending" )
categoryarray: # used with categoryorder if is set to array
color: #default color
dividercolor: #color for dividers (effect only for multicategory axes)
dividerwidth: #width for dividers
domain: #domain of the axis in plot fraction
gridcolor: #color for grid lines
gridwith: #width for grid lines
layer: #one of (above traces/below traces)
linecolor: #set axis line color
linewidth: #width of axis line
mirror: #one of (true/ticks/false/all/allticks) map ticks on the opposite side of the plotting area
overlaying: #set to a same-letter axis id, overlaid on top of the corresponding same letter axis, with traces and axes visible for both axis
position: #sets a the position of this axis in teh plotting space (in normalized coordinates)
range: #array [min,max]
rangeslider:
autorange: #range in relation to the input data
bgcolor: #background color of the range slider
bordercolor: #border color of the range slider
borderwidth: #border width of the range slider
range: # not use an autorange but set the slider
thickness: #height of the rangeslider as a fraction of the total plot area height
visible:
showdividers:
showgrid:
showline:
showticklabels:
side: #one of (top/bottom/left/right)
tickangle: #default to auto in degress
tickcolor:
tickfont: #object with color family size
tickformat:
ticklabeloverflow: #one of (allow, hide past div, hide past domain)
ticklabelposition: #one of ( "outside" | "inside" | "outside top" | "inside top" | "outside left" | "inside left" | "outside right" | "inside right" | "outside bottom" | "inside bottom" )
ticklen:
tickmode: #one of auto (nticks), linear (tick0, dtick) or array (tickvals/ticktext)
ticks: #one of (outside, inside, "")
tickson: #only effect on category axes one of (labels, boundaries)
ticktext:
tickvals:
tickwidth:
title: #the axis title
font: #object composed by color family size
standoff: #distance between axis labels and title text
text:
type: #one of (-, linear, log, date, category, multicategory)
uirevision: #force the axis to re-render
visible:
zeroline: #determine if draw a line along the 0 value of the axis
zerolinecolor:
zerolinewidth:
yaxis:
anchor: #axis to which is bound or free and then position is set by position
automargin:
autorange:
categoryorder: # one of ( "trace" | "category ascending" | "category descending" | "array" | "total ascending" | "total descending" | "min ascending" | "min descending" | "max ascending" | "max descending" | "sum ascending" | "sum descending" | "mean ascending" | "mean descending" | "median ascending" | "median descending" )
categoryarray: # used with categoryorder if is set to array
color: #default color
dividercolor: #color for dividers (effect only for multicategory axes)
dividerwidth: #width for dividers
domain: #domain of the axis in plot fraction
gridcolor: #color for grid lines
gridwith: #width for grid lines
layer: #one of (above traces/below traces)
linecolor: #set axis line color
linewidth: #width of axis line
mirror: #one of (true/ticks/false/all/allticks) map ticks on the opposite side of the plotting area
overlaying: #set to a same-letter axis id, overlaid on top of the corresponding same letter axis, with traces and axes visible for both axis
position: #sets a the position of this axis in teh plotting space (in normalized coordinates)
range: #array [min,max]
showdividers:
showgrid:
showline:
showticklabels:
side: #one of (top/bottom/left/right)
tickangle: #default to auto in degress
tickcolor:
tickfont: #object with color family size
tickformat:
ticklabeloverflow: #one of (allow, hide past div, hide past domain)
ticklabelposition: #one of ( "outside" | "inside" | "outside top" | "inside top" | "outside left" | "inside left" | "outside right" | "inside right" | "outside bottom" | "inside bottom" )
ticklen:
tickmode: #one of auto (nticks), linear (tick0, dtick) or array (tickvals/ticktext)
ticks: #one of (outside, inside, "")
tickson: #only effect on category axes one of (labels, boundaries)
ticktext:
tickvals:
tickwidth:
title: #the axis title
font: #object composed by color family size
standoff: #distance between axis labels and title text
text:
type: #one of (-, linear, log, date, category, multicategory)
uirevision: #force the axis to re-render
visible:
zeroline: #determine if draw a line along the 0 value of the axis
zerolinecolor:
zerolinewidth:
coloraxis:
autocolorscale: #get the default colorscale
cauto: true
cmax:
cmid:
cmin:
colorbar:
bgcolor:
bordercolor:
borderwidth:
len:
lenmode: #one of fraction/pixels default pixels
outlinecolor:
outlinewidth:
showticklabels:
thickness:
thicknessmode: #one of fraction/pixels default pixels
tickangle:
tickcolor:
tickfont: # object with color family font
tickformat:
ticklabelposition: #one of outside/inside and top/bottom
ticks: #tick line to be drawn (outside/inside/"")
ticktext:
tickvals:
tickwidth:
title:
font: # object with color family font
side: # one of (right/top/bottom)
text:
x: #x position of the colorbar (number between -2 and 3)
xanchor: # one of (left/center/right)
xpad: #padding on x direction
y: #y position of the colorbar (number between -2 and 3)
yanchor: #one of (top/middle/bottom)
ypad: #padding on y direction
colorscale: # affects only if marker.color is a numerical array
reversescale:
showscale:
options:
type: #the plot type
nsubplot: #number of subplot of the plot
orientation: #one of (h,v)
x:
group: #vector dividing x input entry into different groups
subplot: #array of object composed by key top/bottom and list of index retaining how inputs are divided into subplots
nticks: #number of ticks on x axis
nbin: #number of bins on x axis (only for ordered attribute)
y:
group: #vector dividing y input entry into different groups
subplot: #array of object composed by key left/right and list of index retaining how inputs are divided into subplots
nticks: #number of ticks on y axis
nbin: #number of bins on y axis (only for ordered attribute)
color:
group: #vector dividing color input entry into different groups
subplot: #array of object composed by key target and list of index retaining how inputs are divided into subplots
nbin: #number of bins on color target (only for ordered attribute)
style:
group: #vector dividing color input entry into different groups
subplot: #array of object composed by key target and list of index retaining how inputs are divided into subplots
nbin: #number of bins on color target (only for ordered attribute)
size:
group: #vector dividing color input entry into different groups
subplot: #array of object composed by key target and list of index retaining how inputs are divided into subplots
nbin: #number of bins on color target (only for ordered attribute)
removezero: #array of length nsubplot with if remove line with 0 occurrence
normalize: #array of length nsubplot with if normalize value with respect to the overall
percval: #array of length nsubplot with if normalize value with respect to all or to trace in percentage
shownull: #array of length nsubplot with if show the None categorical entry (only for categorical attribute)
layout: #set of keys to be added for trace definition
input:
x:
- table: # table of the attribute used
attr: # name of the attribute used
type: # type of the attribute used
group: # number of group of the attribute used
id: # unique id for the attribute
side: # the side of the attribute with respect to the plot (need to match subplot definition)
y:
- table: # table of the attribute used
attr: # name of the attribute used
type: # type of the attribute used
group: # number of group of the attribute used
id: # unique id for the attribute
side: # the side of the attribute with respect to the plot (need to match subplot definition)
color:
- table: # table of the attribute used
attr: # name of the attribute used
type: # type of the attribute used
group: # number of group of the attribute used
id: # unique id for the attribute
style:
- table: # table of the attribute used
attr: # name of the attribute used
type: # type of the attribute used
group: # number of group of the attribute used
id: # unique id for the attribute
size:
- table: # table of the attribute used
attr: # name of the attribute used
type: # type of the attribute used
group: # number of group of the attribute used
id: # unique id for the attribute
scatter:
#Scatter Plot
data: # an array of traces
- name:
visible:
showlegend:
legendgroup:
legendgrouptitle:
- font: # a font is always color family size
text:
opacity:
mode: # combination of [lines, markers, text]
ids: # maybe useful for selection?
x:
y:
text: #text elements associated with each (x,y) pair
textposition: #combination of [top, middle, bottom] and [left, center, right]
textfont: #object color family size
hoverinfo: #combination of [x,y,z,text,name,all, none]
meta: #define some meta information for the trace to be used in text annotation both on traces or layout
customdata: #define some meta information for each point of the trace (passed also at hover, click and selection events)
xaxis:
yaxis:
marker:
#marker color
cauto: true
color: #could be a single color or an arrays of colors or an array of numbers mapped on a colorscale
coloraxis: #reference to a shared coloraxis present in the layout
colorbar:
bgcolor:
bordercolor:
borderwidth:
len:
lenmode: #one of fraction/pixels default pixels
outlinecolor:
outlinewidth:
showticklabels:
thickness:
thicknessmode: #one of fraction/pixels default pixels
tickangle:
tickcolor:
tickfont: # object with color family font
tickformat:
ticklabelposition: #one of outside/inside and top/bottom
ticks: #tick line to be drawn (outside/inside/"")
ticktext:
tickvals:
tickwidth:
title:
font: # object with color family font
side: # one of (right/top/bottom)
text:
x: #x position of the colorbar (number between -2 and 3)
xanchor: # one of (left/center/right)
xpad: #padding on x direction
y: #y position of the colorbar (number between -2 and 3)
yanchor: #one of (top/middle/bottom)
ypad: #padding on y direction
colorscale: # affects only if marker.color is a numerical array
line:
#border line color
cauto: true
color: #could be a single color or an arrays of colors or an array of numbers mapped on a colorscale
coloraxis: #reference to a shared coloraxis present in the layout
colorscale: # affects only if marker.color is a numerical array
width:
maxdisplayed:
opacity:
size: # could be a number for the whole trace of an array of numbers for markers of different size
sizemode: #one of diameter/area
sizemin: #minimum size in px of the rendered marker points
sizeref: #scale factor of the rendered marker point
symbol:
line:
#line color
color: #only one color for the trace
dash: # one of (solid/dot/dash/longdash/dashdot/longdashdot) or a dash length list in px
shape: # interpolation method (linear/spline/hv/vh/hvh/vhv)
width:
selectedpoints: #array of integer indices of selected points
selected: # the style of selected points
marker:
color:
opacity:
size:
textfont:
color:
unselected: # the style of unselected points
marker:
color:
opacity:
size:
textfont:
color:
connectgaps: #if null value needs to be connected
fill: # sets the areaa to fill with a solid color one of (none/tozeroy/tozerox/tonexty/tonextx/toself/tonext)
fillcolor:
uirevision: #change this number to force a re-render of the trace
bar:
#Bar plot
data:
- name:
visible:
showlegend:
legendgroup:
legendgrouptitle:
- font: # a font is always color family size
text:
opacity:
ids: # maybe useful for selection?
x:
y:
width:
text: #text elements associated with each (x,y) pair
textposition: #combination of [top, middle, bottom] and [left, center, right]
textfont: #object color family size
textangle: #the angle of the text with respect to the bar
hoverinfo: #combination of [x,y,z,text,name,all, none]
meta: #define some meta information for the trace to be used in text annotation both on traces or layout
customdata: #define some meta information for each point of the trace (passed also at hover, click and selection events)
xaxis:
yaxis:
orientation: # one of (v/h)
marker:
#marker color
cauto: true
color: #could be a single color or an arrays of colors or an array of numbers mapped on a colorscale
coloraxis: #reference to a shared coloraxis present in the layout
colorbar:
bgcolor:
bordercolor:
borderwidth:
len:
lenmode: #one of fraction/pixels default pixels
outlinecolor:
outlinewidth:
showticklabels:
thickness:
thicknessmode: #one of fraction/pixels default pixels
tickangle:
tickcolor:
tickfont: # object with color family font
tickformat:
ticklabelposition: #one of outside/inside and top/bottom
ticks: #tick line to be drawn (outside/inside/"")
ticktext:
tickvals:
tickwidth:
title:
font: # object with color family font
side: # one of (right/top/bottom)
text:
x: #x position of the colorbar (number between -2 and 3)
xanchor: # one of (left/center/right)
xpad: #padding on x direction
y: #y position of the colorbar (number between -2 and 3)
yanchor: #one of (top/middle/bottom)
ypad: #padding on y direction
colorscale: # affects only if marker.color is a numerical array
line:
#border line color
cauto: true
color: #could be a single color or an arrays of colors or an array of numbers mapped on a colorscale
coloraxis: #reference to a shared coloraxis present in the layout
colorscale: # affects only if marker.color is a numerical array
width:
opacity:
selectedpoints: #array of integer indices of selected points
selected: # the style of selected points
marker:
color:
opacity:
textfont:
color:
unselected: # the style of unselected points
marker:
color:
opacity:
textfont:
color:
constraintext: #force the text to stay (inside/outside/both/none) with respect to the bar
insidetextanchor: #if textposition is inside (end/middle/start) of the bar
insidetextfont: #an object color/family/size
outsidetextfont: #an object color/family/size
uirevision: # to force the re-render of this trace
#Pie traces
pie:
data:
- name:
title: # a title for the single pie
font: # an object with color family size
position: # a combination of (top/middle/bottom) and (left/center/right)
text:
visible:
showlegend:
legendgroup:
legendgrouptitle:
- font: # a font is always color family size
text:
opacity:
ids: # maybe useful for selection?
values: #output for the pie
labels: # sector labels
pull: # make different sector larger in radius or not... could be array of numbers between [0, 1]
text: #text elements associated with each (x,y) pair
textposition: #combination of [top, middle, bottom] and [left, center, right]
textfont: #object color family size
hovertext: # use only if you want to show different information in hover and on the pie
hoverinfo: #combination of [label, text, value, percent, name, all, none]
meta: #define some meta information for the trace to be used in text annotation both on traces or layout
customdata: #define some meta information for each point of the trace (passed also at hover, click and selection events)
textinfo: # same as hoverinfo but value always present
domain:
column: #column on the layout grid
row: #row on the layout grid
x: #horizontal domain of this pie trace (in plot fraction) vector of two element [min, max]
y: #vertical domain of this pie trace (in plot fraction) vector of two element [min, max]
automargin:
marker:
colors: #set the color of each sector
line:
color: # could be an array of colors to have a different border color for each sector
width: # could be an array of number to have a different border width for each sector
direction: # one of (clockwise/counterclockwise)
hole: # number between 0 and 1 to set a fraction of the radius to set the hole
insidetextfont: #an object color/family/size
insidetextorientation: # controls the orientation of the text inside the sectors. one of (horizontal/radial/tangential/auto)
outsidetextfont: #an object color/family/size
rotation: #where to start first sector
scalegroup: #to group pie into groups in order to size them according to their totals (must be an id)
sort: #if true it reorder the sectors from largest to smallest
uirevision: # to force the re-render of this trace
heatmap:
data:
- name:
visible:
legendgroup:
legendgrouptitle:
- font: # a font is always color family size
text:
opacity:
ids: # maybe useful for selection?
x:
y:
z:
text: #text elements associated with each z value
hoverinfo: #combination of [x,y,z,text,name,all, none]
meta: #define some meta information for the trace to be used in text annotation both on traces or layout
customdata: #define some meta information for each point of the trace (passed also at hover, click and selection events)
xaxis:
yaxis:
coloraxis: #reference to a shared coloraxis present in the layout
colorbar:
bgcolor:
bordercolor:
borderwidth:
len:
lenmode: #one of fraction/pixels default pixels
outlinecolor:
outlinewidth:
showticklabels:
thickness:
thicknessmode: #one of fraction/pixels default pixels
tickangle:
tickcolor:
tickfont: # object with color family font
tickformat:
ticklabelposition: #one of outside/inside and top/bottom
ticks: #tick line to be drawn (outside/inside/"")
ticktext:
tickvals:
tickwidth:
title:
font: # object with color family font
side: # one of (right/top/bottom)
text:
x: #x position of the colorbar (number between -2 and 3)
xanchor: # one of (left/center/right)
xpad: #padding on x direction
y: #y position of the colorbar (number between -2 and 3)
yanchor: #one of (top/middle/bottom)
ypad: #padding on y direction
colorscale: # set the colorscale
zauto: true
zsmooth: #one of fast,beta,false
connectgaps: # fill missing values on the z data
uirevision: # to force the re-render of this trace
box:
data:
- name:
visible:
showlegend:
legendgroup:
legendgrouptitle:
- font: # a font is always color family size
text:
opacity:
ids: # maybe useful for selection?
x: #used for horizontal box plot
y: #used for vertical box plot
width: #width of the box 0 means automatic
hovertext: #to be seen hoverinfo must contain text
hoverinfo: #combination of x,y,z,text,name or all, none, skip
meta:
customdata:
xaxis:
yaxis:
orientation: # one of 'v','h'
marker:
color:
line: #border line
color:
outliercolor: #set the color of the border of the outlier sample points. Default marker.color
outlierwidth: # border line in with of the outlier sample points.
width: #with of the bounding lines
opacity:
outliercolor: # set the color of the outlier sample points
size: # set the marker size
symbol: #set the marker symbol
line: #line coloring the box
color:
width:
boxmean: # one of true/sd/false
boxpoints: #one of (all/outliers/suspectedoutliers/false)
notched:
notchwidth:
whiskerwidth:
q1: #set the quartile 1
median: #set the median
q3: #set the quartile 3
lowerfence: #set the lowerfence q1-1.5 *IQR
upperfence: #set the upperfence q3+1.5 *IQR
notchspan: #compute it as 1.57 * IQR / sqrt(N)
mean: #set the mean values
sd: #set the desired standard deviation
quartilemethod: #linear/exclusive/inclusive
selectedpoints:
selected:
marker:
color:
opacity:
size:
unselected:
marker:
color:
opacity:
size:
fillcolor: #color for boxes
hoveron: #combination of boxes and points
pointspos: #set position of points with respect to boxes
jitter: #jitter of the sample points
uirevision: #control the modification
Note
Stat Plots are all like scatter plots, while Funnel charts are equivalent to a bar chart. Finally, a Funnel Area chart is equivalent to a pie, like the Doughnut chart.