SPC Box and Whisker Chart - Perspective

Sepasoft MES Module Suite

A box and whisker plot (sometimes called a boxplot) is a chart that presents information from a five-number summary. This type of chart is used to show the shape of the distribution, its central value, and its variability.

When you need a quick way to see a graphical display of data that shows the median and upper and lower quartiles, along with extreme points and any outliers from my sample measurements.  The Box and Whisker chart shows the process location and variation over time. 

Table Chart Scroll Locking

When the showTable property is set to True, the table chart scroll locking feature provides a user-controlled mechanism to either automatically navigate to the most recent data upon its arrival or maintain the current scroll position.
The scroll lock feature operates in two distinct modes, each with specific UI indicators and behavioral responses to new data.
Success

This feature is available in versions:

MES 3.81.11 SP7 and later

MES 4.83.0 RC2 and later

State
Detailed Description
Locked
UI: The lock icon in the taskbar appears closed and filled.
Behavior: The chart view is locked to the right, automatically jumping to the end of the table whenever new data is received.
Tooltip: Hovering over the icon displays the text: "Allow Free Scrolling".
Free Scrolling
UI: The lock icon in the taskbar appears open and unfilled.
Behavior: The chart maintains its current scroll position, even when new data is received.
Tooltip: Hovering over the icon displays the text: "Lock Scrolling".

Included in Sepasoft Versions:

Warning

MES 3.81.7 RC1 and later


Ignition Designer
Perspective Component Palette

Warning

For an example of Sample Definition Settings, see Settings for Box and Whisker Chart Type.

Component Properties

Properties are provided that can be set to affect the operation and look of the component. They can be set through the Property Editor in the Designer or through scripting.

Python
self.getSibling("Box and Whisker").showLegend = True

SPC Perspective Chart Dataset Properties 

These properties are available in the Ignition Properties Palette for SPC Charts.


Property Source
propertySource

Sets the datasource mode. Toggle two options: Use_stored_settings | Use_binding

Included in Sepasoft Versions:

Warning

MES 3.81.7 RC1 and later


Use_stored_settings: Sets the chart to receive data from Stored Settings. To use this, enter property values under storedSettings, see below.


Use_binding: Sets the chart to receive data from an SPC Controller. To use this, bind to an SPC Controller under spcChartSettings, see below.


When clicking the binding icon on the left side of the propertySource, the Configure Property Binding dialog appears. 


Stored Settings storedSettings

Set property values here when propertySource is set to Use_stored_settings




Property Name Data Type Property Value Description
storedSPCName String

Required when propertySource = 'Use_stored_settings': Sets name of the Stored SPC Setting. The name must match exactly to the name you enter in Stored SPC Selector.

Note

Stored SPC Selector component only offered in VISION.

See Stored SPC Selector | Vision

location String Optional: Filter on a Location that is defined in Equipment Manager. Enter the Equipment Path to the Location.
startDate Date

Required: Sets start date to filter SPC data on

Note Bind to form fields on the view to make dates selectable in runtime.

Required: Sets end date to filter SPC filter on

endDate Date
autoRefresh Boolean True/False Required: True, refreshes data when sample or definition information changes. Set to True to use real-time data.
SPC Chart Settings
spcChartSettings

Set property values here when propertySource is set to Use_Binding


Bind to the SPC Controller



Property Name Data Type Information
storedSPCName String

Incoming property value from the SPC Controller > Stored Setting.

startDate Date Sets start date to start filtering data on 
endDate Date Sets end date to filter data on
autoUpdate Boolean Required True/False: True, updates data when a sample is taken. Use for realtime data.
autoRefresh Boolean Required True/False: True, refreshes data when sample or definition information changes. Use for realtime data.




settings

additionalFactors
String - Additional factors to include in the SPC chart.

attributeName: 

String - Name of the sample attribute

attributeUnits
String - Adds a label for the unit of measure for the sample

boxAndWhiskerFilter

Chart Specific

String - Box and whisker filter items to filter on.
controlLimits: 
String - Summarizes control limits to add to the chart

definitionName: 
String - Name of the sample definition.

filters: 


String - 

location: The Location Path defined in the Equipment Manager to filter on.

factors: Properties >Additional Factor 

Filter on existing additional factors


measurement: 
String - Measure number to filter on

nonconformingFilter

Chart Specific

String - Nonconforming items to filters on

nonconformityFilter

Chart Specific 

String - Nonconformity items to filters on

paretoFilter

Chart Specific

String -  Items to include in a Pareto chart.
rowLimit: 
 String - The maximum number of samples to return in the results.
signals
String - Summarizes your signal selections in a string.
spcDataFormat: 

 String -  SPC Data

Note Each chart type has specific settings. Select the correct chart from the dropdown menu.
useDefaultChartType: 
String - If true, uses the default chart type from the attribute definition.
useDefaultChartType: 
String - If true, uses the default chart type .
enableFutureLimitEditing:
String -If true, you can set limits for future (non-existing) samples.


histogram

autoBarCount:
Boolean - If true, the number of data bars that are displayed is calculated automatically.
dataBarCount
int - The number of data bars to display when autoBarCount is False.
paddingBarCount
int - The number of bars prior to and following the data bars to include in the histogram results.




dynamic

When using an SPC Controller to populate a Perspective SPC Chart, these dynamic filters can be used to filter the data for display in a chart.

factor 
String - Additional factors that were recorded along with the sample.
location
String - The location path where the samples were collected.
productCode
String - Samples returned should have this Product Code if present.
referenceNo
String - Samples returned should have this Reference Number if present.
sampleApprovedBy
String - The username of the user that approved the samples.
sampleTakenBy
String - The username of the user that recorded the samples.
shift 
 String - A schedule shift during which the samples were taken.




spcResults

SPC Results including data, measurement count, messages and calculated value information.


definitionUUI

  • calcValueList
    • defaultChart
    • measureFormat
    • unit

measurementCount

  • messages
    • errormessage
    • warningMessage
spcData: dataset - The SPC data.



showTable
Boolean

Enable to display the data table. The table is updated as new data comes in.

Table Chart Scroll Locking

The table chart scroll locking feature provides a user-controlled mechanism to either automatically navigate to the most recent data upon its arrival or maintain the current scroll position.
The scroll lock feature operates in two distinct modes, each with specific UI indicators and behavioral responses to new data.
Success

This feature is available in versions:

MES 3.81.11 SP7 and later

MES 4.83.0 RC2 and later

State
Detailed Description
Locked
UI: The lock icon in the taskbar appears closed and filled.
Behavior: The chart view is locked to the right, automatically jumping to the end of the table whenever new data is received.
Tooltip: Hovering over the icon displays the text: "Allow Free Scrolling".
Free Scrolling
UI: The lock icon in the taskbar appears open and unfilled.
Behavior: The chart maintains its current scroll position, even when new data is received.
Tooltip: Hovering over the icon displays the text: "Lock Scrolling".


Component Properties Specific to Box and Whiskers Chart

NameScripting ReferenceDescription

enableControlLimitEditingBoolean

Toggle show/hide

When enabled, an edit button is displayed. 

Once a control-limit type is selected and Calculate is checked, a limit value is calculated and displayed. 

If the value box is populated and date is selected, you can choose to set the limit value. 

A message displays:

  • operation (set or calculate) executed successfully.
  • Error message detail 

verticalBooleanSets the orientation of the chart.

showLegendBooleanShow or hide the chart's legend.

showMeanBooleanShow or hide the mean data point.

showOutsideBooleanShow or hide the outside data points.

showFarOutBooleanShow or hide the far out data points.

valueAxisTitleStringTitle to show for the value axis.

categoryAxisTitleStringTitle to show for the category axis.

axisStyle


axisTitleColorColor pickerColor for both axis titles.


axisTitleFontStringFont family for both axis titles

chartStyleChart styles apply to the plot area of the chart not including the data on the plot area


chartBackgroundStringColor of the background of the chart.


horzGridLineColorColor, picker availableColor of the horizontal grid line.


showHorizontalGridLinesBooleanIf true, show horizontal grid lines on charts.


vertGridLineColorColor, picker availableThe color of vertical grid lines.


showVeriticalGridLinesBooleanIf true, show vertical grid lines on charts.

chartDataStyle


boxMaxWidthPercentageFloatThe box maximum width percentage


dataPointCircleDiameterSizeIntThe circle diameter size of mean, outside and far out data point.


filledBoxBooleanIf true, draws a filled box.


meanAndMedianColorColor, picker availableThe color of the mean and the median for the chart.


seriesColorsString, ListThe colors to paint each box in a series.

tickStyle





tickLabelColorColor, picker availableThe color of the tick labels.


tickLabelFontStringThe font of the tick labels.

noDataStyle




noDataForegroundColor, picker available


noDataFontString


Meta Properties in the Perspective Property Editor

Name

Scripting Reference

Data TypeDescription
nameStringName of the component. Used in scripting and component tree paths by name, such as during Property Binding.
visible

Boolean

Whether or not this component should display.

tooltip

enable
BooleanWhether the tooltip on hover
width
IntegerThe height of the table rows.
text
StringThe scroll bar x position.
styleBooleanToggle to show or hide the sample data table.
delayBooleanImage icon to show to edit control limits.
sustainInteger

Time, in milliseconds, to display tooltip before removing it. A value of 0 results in the tooltip displaying until the mouse exits the components. 

locationBooleanThe location where the tooltip displays. 
tailBooleanEnables a decorative triangle on the tooltip that points to the tooltip owner. Ignored when location uses a value of 'mouse'.

Event Handlers

Event handlers provide the ability to add custom script when a user interacts with a component such as by clicking a mouse, selecting a menu item or when a component property changes.

mouse

mouseClicked

This event signifies a mouse click on the source component. A mouse click the combination of a mouse press and a mouse release, both of which must have occurred over the source component. Note that this event fires after the pressed and released events have fired.

PropertyDescription
.sourceThe component that fired this event.
.buttonThe code for the button that caused this event to fire.
.clickCountThe number of mouse clicks associated with this event.
.xThe x-coordinate (with respect to the source component) of this mouse event.
.yThe y-coordinate (with respect to the source component) of this mouse event.
.popupTriggerReturns True (1) if this mouse event is a popup trigger. What constitutes a popup trigger is operating system dependent, which is why this abstraction exists.
.altDownTrue (1) if the Alt key was held down during this event, false (0) otherwise.
.controlDownTrue (1) if the Ctrl key was held down during this event, false (0) otherwise.
.shiftDownTrue (1) if the Shift key was held down during this event, false (0) otherwise.

mouseEntered

This event fires when the mouse enters the space over the source component.

PropertyDescription
.sourceThe component that fired this event.
.buttonThe code for the button that caused this event to fire.
.clickCountThe number of mouse clicks associated with this event.
.xThe x-coordinate (with respect to the source component) of this mouse event.
.yThe y-coordinate (with respect to the source component) of this mouse event.
.popupTriggerReturns True (1) if this mouse event is a popup trigger. What constitutes a popup trigger is operating system dependent, which is why this abstraction exists.
.altDownTrue (1) if the Alt key was held down during this event, false (0) otherwise.
.controlDownTrue (1) if the Ctrl key was held down during this event, false (0) otherwise.
.shiftDownTrue (1) if the Shift key was held down during this event, false (0) otherwise.

mouseExited

This event fires when the mouse leaves the space over the source component.

PropertyDescription
.sourceThe component that fired this event.
.buttonThe code for the button that caused this event to fire.
.clickCountThe number of mouse clicks associated with this event.
.xThe x-coordinate (with respect to the source component) of this mouse event.
.yThe y-coordinate (with respect to the source component) of this mouse event.
.popupTriggerReturns True (1) if this mouse event is a popup trigger. What constitutes a popup trigger is operating system dependent, which is why this abstraction exists.
.altDownTrue (1) if the Alt key was held down during this event, false (0) otherwise.
.controlDownTrue (1) if the Ctrl key was held down during this event, false (0) otherwise.
.shiftDownTrue (1) if the Shift key was held down during this event, false (0) otherwise.

mousePressed

This event fires when a mouse button is pressed down on the source component.

PropertyDescription
.sourceThe component that fired this event.
.buttonThe code for the button that caused this event to fire.
.clickCountThe number of mouse clicks associated with this event.
.xThe x-coordinate (with respect to the source component) of this mouse event.
.yThe y-coordinate (with respect to the source component) of this mouse event.
.popupTriggerReturns True (1) if this mouse event is a popup trigger. What constitutes a popup trigger is operating system dependent, which is why this abstraction exists.
.altDownTrue (1) if the Alt key was held down during this event, false (0) otherwise.
.controlDownTrue (1) if the Ctrl key was held down during this event, false (0) otherwise.
.shiftDownTrue (1) if the Shift key was held down during this event, false (0) otherwise.

mouseReleased

This event fires when a mouse button is released, if that mouse button's press happened over this component.

PropertyDescription
.sourceThe component that fired this event.
.buttonThe code for the button that caused this event to fire.
.clickCountThe number of mouse clicks associated with this event.
.xThe x-coordinate (with respect to the source component) of this mouse event.
.yThe y-coordinate (with respect to the source component) of this mouse event.
.popupTriggerReturns True (1) if this mouse event is a popup trigger. What constitutes a popup trigger is operating system dependent, which is why this abstraction exists.
.altDownTrue (1) if the Alt key was held down during this event, false (0) otherwise.
.controlDownTrue (1) if the Ctrl key was held down during this event, false (0) otherwise.
.shiftDownTrue (1) if the Shift key was held down during this event, false (0) otherwise.

mouseMotion

mouseDragged

Fires when the mouse moves over a component after a button has been pushed.


PropertyDescription
.sourceThe component that fired this event.
.buttonThe code for the button that caused this event to fire.
.clickCountThe number of mouse clicks associated with this event.
.xThe x-coordinate (with respect to the source component) of this mouse event.
.yThe y-coordinate (with respect to the source component) of this mouse event.
.popupTriggerReturns True (1) if this mouse event is a popup trigger. What constitutes a popup trigger is operating system dependent, which is why this abstraction exists.
.altDownTrue (1) if the Alt key was held down during this event, false (0) otherwise.
.controlDownTrue (1) if the Ctrl key was held down during this event, false (0) otherwise.
.shiftDownTrue (1) if the Shift key was held down during this event, false (0) otherwise.

mouseMoved

Fires when the mouse moves over a component, but no buttons are pushed.

PropertyDescription
.sourceThe component that fired this event.
.buttonThe code for the button that caused this event to fire.
.clickCountThe number of mouse clicks associated with this event.
.xThe x-coordinate (with respect to the source component) of this mouse event.
.yThe y-coordinate (with respect to the source component) of this mouse event.
.popupTriggerReturns True (1) if this mouse event is a popup trigger. What constitutes a popup trigger is operating system dependent, which is why this abstraction exists.
.altDownTrue (1) if the Alt key was held down during this event, false (0) otherwise.
.controlDownTrue (1) if the Ctrl key was held down during this event, false (0) otherwise.
.shiftDownTrue (1) if the Shift key was held down during this event, false (0) otherwise.

propertyChange

propertyChange

Fires whenever a bindable property of the source component changes. This works for standard and custom (dynamic) properties.

PropertyDescription
.sourceThe component that fired this event.
.newValueThe new value that this property changed to.
.oldValueThe value that this property was before it changed. Note that not all components include an accurate oldValue in their events.
.propertyNameThe name of the property that changed. NOTE: Remember to always filter out these events for the property that you are looking for! Components often have many properties that change.

Component Functions

Example of the component on the page root container:

event.source.parent.getComponent('Box and Whisker Chart').showSetLimitPanel (True).

showSetLimitPanel

  • Description

Causes the calculate and set control limit dialog to be shown.

  • Parameters

Boolean - True/False

  • Return

Nothing

  • Scope

Client

Sepasoft MES Module Suite