Skip to main content
Version: 8.1

Vision - Easy Chart

Component Palette Icon:


This component is used to make runtime-configurable time-series charts. It is configured by defining a set of pens and axes. Pens can be many different styles, such as line, area, bar, and shape. This chart automatically creates controls for picking the time range and for hiding or displaying pens.


  • Easy configuration
  • User-selectable set of pens
  • Automatic time-selection controls
  • SQL Query and/or SQLTags Historian data sources
  • Automatic SPC and calculated pen support
  • Zoom, Pan, X-Trace modes
  • Any number of Y-axes and subplots
  • Realtime or Historical


There are three kinds of pens in the Easy Chart:

  1. Tag Historian Pens. These pens pull their data from the Historian system.
  2. Database Pens. These pens will automatically create SQL SELECT queries to pull data from a database table. Typically, this is a table that is the target of a Historical Transaction Group.
  3. Calculated Pens: These pens display a calculated dataset based off another pen, such as a moving average or Statistical Process Control (SPC) function such as the Upper Control Limit (UCL).

Interface Elements

PensAfter dragging a tag onto the Easy Chart, a Pen corresponding to the tag's value will appear in the Pens panel. Pens can be selected and deselected using the checkboxes. Clicking the X next to a pen will remove it from the Easy Chart.
Date RangeIn Historical mode, the user is shown a Vision - Date Range component to pick the range of data to fetch and display. The initial values of this component are set through properties on the chart. In historical mode, the chart does not poll.
In Realtime mode, the user is instead given the ability to select an amount of time before the current timestamp:

The chart will poll at a rate according to the Poll Rate parameter.
In Manual mode, no user input controls are displayed. The chart will use the values of its Start Date and End Date parameters to govern what data is displayed. The chart will poll at a rate according to the Poll Rate parameter.
Maximize Clicking this button will maximize the chart to fill the area of the component.
Print Clicking this button will print the chart.
Save to Excel Clicking this button will save the chart data as an Excel spreadsheet.

You can bring up a context menu for this component when right-clicking on it either in the Designer's Preview Mode or in a Vision Client. See the Charting - Right Click Menu page for more details.


NameDescriptionProperty TypeScriptingCategory
3D X OffsetThe offset to use in the x direction for the '3D Line' pen Style Options
3D Y OffsetThe offset to use in the y direction for the '3D Line' pen Style Options
Allow Color ChangesIf true, pen colors can be set to different values.boolean.allowColorChangesBehavior
Allow Tag History InterpolationIf enabled and the query mode is not raw, the data will be interpolated for time spans with no data available.booleantagHistoryAllowInterpolationTag History
Auto ApplyIf true, user changes to pen visibility will occur immediately.boolean.autoApplyBehavior
Auto Axis PositioningIf true, axes alternate automatically between left and right, rather than being placed explicitly.boolean.autoPositionAxesBehavior
Auto Color ListThe list of colors to use if auto pen coloring is enabled.Color[].autoColorListBehavior
Auto Pen ColoringIf true, pens are assigned different colors automatically.boolean.autoColorPensBehavior
AxesThis Dataset defines all axes that can be used by the pens.Dataset.axesChart Configuration
Axis FontThe font for axis labels.Font.axisLabelFontAppearance
Background ColorThe background color of the component. See Color Selector.Color.backgroundAppearance
Bar MarginThe margin to use for the 'Bar' pen style.double.barMarginPen Style Options
BorderThe border surrounding this component. Options are: No border, Etched (Lowered), Etched (Raised), Bevel (Lowered), Bevel (Raised), Bevel (Double), Field Border, and Line Border.
Note: The border is unaffected by rotation.
Changed in 8.1.21
As of 8.1.21, the "Button Border" and "Other Border" options are removed.
Box FillFor historical-mode date range. The fill color for the selection box. Can be chosen from color wheel, chosen from color palette, or entered as RGB or HSL value. See Color Selector.Color.boxFillHistorical Range
Button SizeThe size of the utility button Buttons
Bypass Tag History CacheIf true, tag history queries will not use the client history cache.boolean.tagHistoryBypassCacheTag History
Calculated PensThis Dataset defines the calculated pens for the chart.Dataset.calcPensChart Configuration
Chart BorderThe border for the chart itself.Border.chartBorderAppearance
Chart ModeAffects the mode that the chart operates in; Manual Mode, Historical Mode, Realtime Mode.
Integer ValueCorresponding Mode
Chart TitleSets an optional title to be displayed above the chart.String.titleAppearance
CursorThe mouse cursor to use when hovering over this component. Options are: Default, Crosshair, Text, Wait, Hand, Move, SW Resize, or SE
DB PensThis Dataset defines all of the database pens for the chart.Dataset.pensChart Configuration
Date Editor BackgroundThe background color for the date editor. See Color Selector.Color.editorBackgroundColorAppearance
Date Editor ForegroundThe foreground color for the date editor. See Color Selector.Color.editorForegroundColorAppearance
Date RangeAffects the position of the date range
Date Range BorderThe border for the date range control, if visible.Border.dateRangeBorderAppearance
Date StyleThe style to display dates in. For international Range
Digital GapThe size of the gap to use between digital pens.double.digitalGapPen Style Options
Empty Group NameThe group name to use for pens that are not in a pen group.String.emptyGroupNameBehavior
End DateFor manual-mode. The end date to use for selecting pen dataDate.endDateData
FontFont of text on this component.Font.fontAppearance
Foreground ColorThe foreground color of the component. See Color Selector.Color.foregroundAppearance
Gap ThresholdThe relative threshold to use for determining continuity breaks for the 'Discontinuous Line' pen style.double.gapThresholdPen Style Options
Gridline ColorThe color of the gridlines. See Color Selector.Color.gridlineColorAppearance
Gridline Dash PatternEnter a string of comma-delimited numbers which indicate the stroke pattern for a dashed line. For instance, "3,5" means three pixels on, five pixels off.String.gridlineDashPatternAppearance
Gridline WidthThe width (thickness) of the gridlines.float.gridlineWidthAppearance
Group PensIf true, pens will be grouped by their group name.boolean.penGroupingBehavior
High Density ColorFor historical-mode date range. The color used to indicate high data density. See Color Selector.Color.highDensityColorHistorical Range
Horiz GapThe horizontal spacing to use for the pen
Ignore Bad Quality DataIf true, causes the system to ignore any bad quality data.booleantagHistoryIgnoreBadDataTag History
Invert Time AxisIf true, the time axis values will increase from the right to left or from top to bottom depending on the Plot Orientation.boolean.invertTimeAxisLayout
LegendWhere the legend should appear, if
Max SelectionFor historical-mode date range. The maximum size of the selected date range.String.maxSelectionSizeHistorical Range
Maximize PlotIf true, displays maximized plot.boolean.currentlyMaximizedLayout
Mouseover TextThe text that is displayed in the tooltip which pops up on mouseover of this component.String.toolTipTextCommon
NameThe name of this component.String.nameCommon
Outer Range EndFor historical-mode date range. The end date for the outer range. Used in cases when an explicit point in time should be used to define the outer range of the chart. Competes with Startup Range.Date.outerRangeEndHistorical Range
Outer Range StartFor historical-mode date range. The start date for the outer range. Used in cases when an explicit point in time should be used to define the outer range of the chart. Competes with Startup Range.Date.outerRangeStartHistorical Range
Pen Control BorderThe border for the pen control panel, if visible.Border.penBorderAppearance
Pen Control ModeThe style in which the pen control panel alters the chart configuration. In heavyweight mode, unchecked pens are not queried, so checking and unchecking pens refreshes the chart. In lightweight mode, all pens are constantly queried, so checking and unchecking pens is
Pen Control?Controls whether or not end-users can turn on and off pens.boolean.allowPenManipulationBehavior
Plot BackgroundThe background color for all plots, unless they override it. See Color Selector.Color.plotBackgroundAppearance
Plot OrientationThe plot orientation for all
Plot OutlineThe color to use for the plot outline. See Color Selector.Color.plotOutlineColorAppearance
Poll RateThe rate (in milliseconds) at which this chart's queries poll. Historical charts don't use this
Properties LoadingThe number of properties currently being loaded. (Read only. Usable in bindings and scripting.)int.propertiesLoadingUncategorized
Realtime TextFor realtime-mode date range. The text to display on the realtime date control.String.rtLabelRealtime Range
Selected X ValueThe selected domain axis value for X-Trace and Mark modes. (Read only. Usable in bindings and scripting.)String.selectedXValueUncategorized
Selection HighlightFor historical-mode date range. The focus highlight color for the selection box. See Color Selector.Color.selectionHighlightHistorical Range
Show DensityFor historical-mode date range. If true, a data density histogram will be shown in the date range.
Note: This feature relies on being able to validate the data against tag group execution. This chart will be unable to display density information for tags that were stored by an Internal Historian Provider, as well as cases where tag group validation is disabled (such as by disabling Enable Stale Data Detection)
boolean.showHistogramHistorical Range
Show LoadingIf true, an animated indicator will be shown when data is loading.boolean.showLoadingBehavior
Show Maximize Button?If true, a small maximize button will be displayed next to the chart.boolean.showMaximizeUtility Buttons
Show Popup?If true, a popup menu will be shown on right-click that allows the user to change mode, print, save, etc.boolean.showPopupBehavior
Show Print Button?If true, a small print button will be displayed next to the chart..boolean.showPrintUtility Buttons
Show Save Button?If true, a small save button will be displayed next to the chart.boolean.showSaveUtility Buttons
Show Tooltips?If true, tooltips showing point values will be displayed on the chart.boolean.tooltipsBehavior
Show WarningsIf true, warnings generated during chart configuration will be printed to the console.boolean.showWarningsBehavior
Sort PensIf true, pens visibility checkboxes will be sorted.boolean.alphabetizePensLayout
Start DateFor manual-mode. The start date to use for selecting pen data.Date.startDateData
Startup RangeFor historical-mode date range, this will be the starting range of time available for selection. Useful in cases where the chart should range a period of time on window open (i.e., show the last 8 hours). Competes with the Outer Range Start and Outer Range End properties.String.startupRangeHistorical Range
Startup SelectionFor historical-mode date range, this value will be used for the starting selection range.String.startupSelectionHistorical Range
Subplot GapThe gap between subplots.double.subplotGapLayout
SubplotsThis Dataset defines all subplots' relative size and color.Dataset.subplotsChart Configuration
Tag History ResolutionWhen Tag History Resolution Mode is set to "Fixed", this setting is used to specify the number of the number of data points that should be returned by tag history queries.
When a tag history provider has pre-processed partitions enabled, this setting can be used in conjunction with the chart's range to specify if the tag history data should use pre-processed partitions or not. For example, if the chart is displaying a range of 60 minutes, and resolution is set to 6,
Setting this to -1 is equivalent to using the Raw Resolution Mode.
Setting this to 0 is equivalent to using the Natural Resolution Mode.
int.tagHistoryResolutionTag History
Tag History Resolution ModeThe mode used for the number of requested points. Fixed will use the Tag History Resolution Size, Natural will return a value per tag group execution, Chart Width will be based on the actual width of the chart component, and Raw will be the raw data.inttagHistoryResolutionModeTag History
Tag PensThis Dataset defines all of the Tag History pens for the chart.Dataset.tagPensChart Configuration
Tick DensityFor historical-mode date range. This is multiplied by the width to determine the current ideal tick unit.float.tickDensityHistorical Range
Tick FontThe font for tick labels.Font.axisTickLabelFontAppearance
Time StyleThe style to display times of day. For international Range
Title FontThe font for the optional chart title.Font.titleFontAppearance
Today ColorFor historical-mode date range. The color of the "Today Arrow" indicator. See Color Selector.Color.todayIndicatorColorHistorical Range
Total DatapointsThe number of datapoints being displayed by the graph. (Read only. Usable in bindings and scripting.)int.datapointsUncategorized
Track MarginFor historical-mode date range. The amount of room on either side of the slider track. May need adjusting of default font is Range
UnitFor realtime-mode date range. The selected unit of the realtime date Range
Unit CountFor realtime-mode date range. The number of units back to Range
Validate Scan Class ExecutionsCauses the tag history query to verify the scan class execution records, generating bad data for the time periods where the scanclasses did not execute.booleantagHistoryValidateScanclassTag History
Vert GapThe vertical spacing to use for the pen
VisibleIf disabled, the component will be hidden.boolean.visibleCommon
Where ClauseA snippet of where clause that will be applied to all pens, like "TankNum = 2".String.globalWhereClauseData
X Axis AutoRange?If true, the X axis will automatically fit the range of available data, if false, it will display a fixed range based on the start date and end date.boolean.xAxisAutoRangeBehavior
X Axis LabelThe label shown on the X Axis (time axis).String.xAxisLabelAppearance
X Axis MarginA margin for the upper and lower ends of the x axis, expressed as a percentage of the total range.double.xAxisMarginBehavior
X Axis VisibleShould the x-axis be displayed?boolean.xAxisVisibleAppearance
X-Trace Large Number FormatThe large decimal format for the x-trace value in the Easy Chart.String.xTraceLargeNumberFormatAppearance
X-Trace Number Format ThresholdIf the magnitude of the to-be-formatted value is below this threshold, then the X-Trace Small Number Format will be used.double.xTraceNumberFormatThresholdAppearance
X-Trace Small Number FormatThe small decimal format for the x-trace value in the Easy Chart.String.xTraceSmallNumberFormatAppearance
X-Trace Track MouseIf set enabled, and the chart is set to X-Trace mode, the X-Trace will auto track the mouse position while the cursor is over the component. This is particularly useful when displaying the Easy Chart on a touchscreen.
Changed in 8.1.15
.xTraceTrackMouse and .XTraceTrackMouse can be used interchangeably to read/write to the property.


See the Vision - Easy Chart Scripting Functions page for the full list of scripting functions available for this component.

Event Handlers

Event handlers allow you to run a script based off specific triggers. See the full list of available event handlers on the Component Events page


Refer to the Vision - Easy Chart Customizer and the Using the Vision Easy Chart sections of the manual for examples and tutorials on how to use the Easy Chart Customizer. With the customizer, you can set up: