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 Input Menu¶

The Plot input menu can be identified by an hamburger menu, located in the top-left corner of the widget. This menu allows accessing the options within it, with its location varying depending on the widget position on the stage. The menu usually opens at the left of the widget, but if there is no space, it will open on the right.

The input menu allows users to drop the attributes onto the graphical dimensions of the plot. When dragging the attribute onto the widget, a graphical representation of data is created by default according to the plot type.

Moreover, by right-clicking the graphical dimensions icons in the input menu, it is possible to customize them further.

Click here to know more about the options in the input menu.

Note

As each plot is different from the other ones, the available controllers for the configuration will be highlighted in the plot input menu.


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.


Plot Context Menu¶

The Plot context menu allows users to organize the visualization of data in the Plots when not ordered attributes (nominal or binary) are used.

In order to open the menu, users can simply right-click any empty spot of the plot, and they will find the following entries:

  • Show categories: here users can decide the amount of data categories to show. The possible filters are:
    • Show Top 10 categories

    • Show Top 50 categories

    • Show All categories

    • Advanced, where users can manually insert the number of categories to show and sort them as well.

  • Sort categories: here users can decide how to sort the data categories which by default are presented in alphabetical order. The possible options are:
    • Total value ascending

    • Total value descending

    • Mean value ascending

    • Mean value descending

    • Mode value ascending

    • Mode value descending

    • Median value ascending

    • Median value descending

    • Category ascending

    • Category descending

    • Reference array, where users can manually sort the data and decide the amount to show.

    • No sort

Note

The plot context menu is available for all plots, except the Box plot, the Stat plots, the Pie chart and the Doughnut chart.


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:
  • 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.