Inheritance: AmXYChart → AmRectangularChart → AmCoordinateChart → AmChart

Extension for AmRectangularChart to create XY/bubble/scatter charts.
The charts support multiple axes with simple or logarithmic scales.

### Example

    var chart = AmCharts.makeChart("chartdiv",{
    	"type": "xy",
    	"graphs": [
    		{
    			"bullet": "diamond",
    			"lineAlpha": 0,
    			"valueField": "value",
    			"xField": "x",
    			"yField": "y"
    		}
    	],
    	"dataProvider": [
    		{
    			"y": 10,
    			"x": 14,
    			"value": 59
    		},
    		{
    			"y": 5,
    			"x": 3,
    			"value": 50
    		},
    		{
    			"y": 8,
    			"x": 19,
    			"value": 55
    		}
    	]
    });

### Properties Hide inherited Show inherited

Property | Type | Default | Description
--- | --- | --- | ---
accessible | Boolean | true | When enabled, chart adds aria-label attributes to columns, bullets or map objects. You can control values of these labels using properties like accessibleLabel of AmGraph. Note, not all screen readers support these tags. We tested this mostly with NVDA Screen reader. WAI-ARIA is now official W3 standard, so in future more readers will handle this well. We will be improving accessibility on our charts, so we would be glad to hear your feedback.
accessibleTitle | String |  | <title> element will be added to <svg> node if you set any. It is read by most of the screen readers.
addClassNames | Boolean | false | Specifies, if class names should be added to chart elements.
allLabels | Array[Label] | [] | Array of Labels. Example of label object, with all possible properties: {"x": 20, "y": 20, "text": "this is label", "align": "left", "size": 12, "color": "#CC0000", "alpha": 1, "rotation": 0, "bold": true, "url": "http://www.amcharts.com"}
angle | Number | 0 | The angle of the 3D part of plot area. This creates a 3D effect (if the "depth3D" is > 0).
autoDisplay | Boolean | false | If you set it to true the chart will automatically monitor changes of display style of chart’s container (or any of it’s parents) and will render chart correctly if it is changed from none to block. We recommend setting it to true if you change this style at a run time, as it affects performance a bit.
autoMarginOffset | Number | 10 | Space left from axis labels/title to the chart's outside border, if autoMargins set to true.
autoMargins | Boolean | true | Specifies if margins of a chart should be calculated automatically so that labels of axes would fit. The chart will adjust only margins with axes. Other margins will use values set with marginRight, marginTop, marginLeft and marginBottom properties.
autoResize | Boolean | true | Set this to false if you don't want chart to resize itself whenever its parent container size changes.
autoTransform | Boolean | false | If you set it to true and your chart div (or any of the parent div) has css scale applied, the chart will position mouse at a correct position. Default value is false because this operation consumes some CPU and quite a few people are using css transfroms.
backgroundAlpha | Number | 0 | Opacity of background. Set it to >0 value if you want backgroundColor to work. However we recommend changing div's background-color style for changing background color.
backgroundColor | Color | #FFFFFF | Background color. You should set backgroundAlpha to >0 value in order background to be visible. We recommend setting background color directly on a chart's DIV instead of using this property.
balloon | AmBalloon | AmBalloon | The chart creates AmBalloon class itself. If you want to customize balloon, get balloon instance using this property, and then change balloon's properties.
borderAlpha | Number | 0 | Opacity of chart's border. Value range is 0 - 1.
borderColor | Color | #000000 | Color of chart's border. You should set borderAlpha >0 in order border to be visible. We recommend setting border color directly on a chart's DIV instead of using this property.
chartCursor | ChartCursor |  | Cursor of a chart.
chartData | Array[Object] |  | Read-only. Array, holding processed chart's data.
chartScrollbar | ChartScrollbar |  | Chart's scrollbar.
classNamePrefix | String | amcharts | This prefix is added to all class names which are added to all visual elements of a chart in case addClassNames is set to true.
color | Color | #000000 | Text color.
colors | Array[Color] | ["#FF6600", "#FCD202", "#B0DE09", "#0D8ECF", "#2A0CD0", "#CD0D74", "#CC0000", "#00CC00", "#0000CC", "#DDDDDD", "#999999", "#333333", "#990000"] | Specifies the colors of the graphs if the lineColor of a graph is not set. If there are more graphs then colors in this array, the chart picks a random color.
creditsPosition | String | top-left | Non-commercial version only. Specifies position of link to amCharts site. Allowed values are: top-left, top-right, bottom-left and bottom-right.
dataDateFormat | String |  | In case you have date-based value axis in your XY chart, you can specify your corresponding values as strings. In that case you will need to set this setting to whatever format your are using for date/time. Check this page for available formats. Please note that two-digit years (YY) as well as literal month names (MMM) are NOT supported in this setting.
dataLoader | Object |  | A config object for Data Loader plugin. Please refer to the following page for more information.
dataProvider | Array[Object] |  | Array of data objects, for example: [{country:"US", value:524},{country:"UK", value:624},{country:"Lithuania", value:824}]. You can have any number of fields and use any field names. In case of AmMap, data provider should be MapData object. The data set data. Important: if you are using date/time-based category axis, the data points needs to come pre-ordered in ascending order. Data with incorrect order might result in visual and functional glitches on the chart.
decimalSeparator | String | . | Decimal separator.
defs | Object |  | Using this property you can add any additional information to SVG, like SVG filters or clip paths. The structure of this object should be identical to XML structure of a object you are adding, only in JSON format.
depth3D | Number | 0 | The depth of the 3D part of plot area. This creates a 3D effect (if the "angle" is > 0).
export | Object |  | Export config. Specifies how export to image/data export/print/annotate menu will look and behave. You can find a lot of examples in amcharts/plugins/export folder. More details can be found here.
fontFamily | String | Verdana | Font family.
fontSize | Number | 11 | Font size.
graphs | Array[AmGraph] |  | The array of graphs belonging to this chart.
gridAboveGraphs | Boolean | false | Specifies if grid should be drawn above the graphs or below. Will not work properly with 3D charts.
guides | Array[Guide] | [] | Instead of adding guides to the axes, you can push all of them to this array. In case guide has category or date defined, it will automatically will be assigned to the category axis. Otherwise to first value axis, unless you specify a different valueAxis for the guide.
handDrawn | Boolean | false | If you set this to true, the lines of the chart will be distorted and will produce hand-drawn effect. Try to adjust chart.handDrawScatter and chart.handDrawThickness properties for a more scattered result.
handDrawScatter | Number | 2 | Defines by how many pixels hand-drawn line (when handDrawn is set to true) will fluctuate.
handDrawThickness | Number | 1 | Defines by how many pixels line thickness will fluctuate (when handDrawn is set to true).
hideBalloonTime | Number | 150 | Time, in milliseconds after which balloon is hidden if the user rolls-out of the object. Might be useful for AmMap to avoid balloon flickering while moving mouse over the areas. Note, this is not duration of fade-out. Duration of fade-out is set in AmBalloon class.
hideXScrollbar | Boolean | false | Specifies if Scrollbar of X axis (horizontal) should be hidden.
hideYScrollbar | Boolean | false | Specifies if Scrollbar of Y axis (vertical) should be hidden.
language | String |  | Allows changing language easily. Note, you should include language js file from amcharts/lang or ammap/lang folder and then use variable name used in this file, like chart.language = "de"; Note, for maps this works differently - you use language only for country names, as there are no other strings in the maps application.
legend | AmLegend |  | Legend of a chart.
legendDiv | String |  | Read-only. Reference to the div of the legend.
listeners | Array[Object] |  | You can add listeners of events using this property. Example: listeners = [{"event":"dataUpdated", "method":handleEvent}];
marginBottom | Number | 20 | Number of pixels between the container's bottom border and plot area. This space can be used for bottom axis' values. If autoMargin is true and bottom side has axis, this property is ignored.
marginLeft | Number | 20 | Number of pixels between the container's left border and plot area. This space can be used for left axis' values. If autoMargin is true and left side has axis, this property is ignored.
marginRight | Number | 20 | Number of pixels between the container's right border and plot area. This space can be used for Right axis' values. If autoMargin is true and right side has axis, this property is ignored.
marginsUpdated | Boolean | false | Flag which should be set to false if you need margins to be recalculated on next chart.validateNow() call.
marginTop | Number | 20 | Number of pixels between the container's top border and plot area. This space can be used for top axis' values. If autoMargin is true and top side has axis, this property is ignored.
maxValue | Number |  | These can be used to adjust size/scale of bubbles. If these properties are not set, the bubble with smallest value will be of minBulletSize and bubble with biggest value will be of maxBulletSize. However, you might want bubble size to change relative to 0 or some other value. In this case you can use minValue and maxValue properties. Note, if you use these two settings, you might also want to set minBulletSize to 0.
maxZoomFactor | Number | 20 | Maximum zoom factor of the chart.
minMarginBottom | Number |  | If bottom side has a value axis and autoMargins is set to true (default), the margin of this side will be not less than set on minMarginBottom property.
minMarginLeft | Number |  | If left side has a value axis and autoMargins is set to true (default), the margin of this side will be not less than set on minMarginLeft property.
minMarginRight | Number |  | If right side has a value axis and autoMargins is set to true (default), the margin of this side will be not less than set on minMarginRight property.
minMarginTop | Number |  | If top side has a value axis and autoMargins is set to true (default), the margin of this side will be not less than set on minMarginTop property.
minValue | Number |  | These can be used to adjust size/scale of bubbles. If these properties are not set, the bubble with smallest value will be of minBulletSize and bubble with biggest value will be of maxBulletSize. However, you might want bubble size to change relative to 0 or some other value. In this case you can use minValue and maxValue properties. Note, if you use these two settings, you might also want to set minBulletSize to 0.
panEventsEnabled | Boolean | true | This setting affects touch-screen devices only. If a chart is on a page, and panEventsEnabled are set to true, the page won't move if the user touches the chart first. If a chart is big enough and occupies all the screen of your touch device, the user won’t be able to move the page at all. If you think that selecting/panning the chart or moving/pinching the map is a primary purpose of your users, you should set panEventsEnabled to true, otherwise - false.
path | String | amcharts/ | Specifies absolute or relative path to amCharts files, i.e. "amcharts/". (where all .js files are located) If relative URLs are used, they will be relative to the current web page, displaying the chart. You can also set path globally, using global JavaScript variable AmCharts_path. If this variable is set, and "path" is not set in chart config, the chart will assume the path from the global variable. This allows setting amCharts path globally. I.e.:
    var AmCharts_path = "/libs/amcharts/";
"path" parameter will be used by the charts to locate it's files, like images, plugins or patterns.
pathToImages | String |  | Specifies path to the folder where images like resize grips, lens and similar are. IMPORTANT: Since V3.14.12, you should use "path" to point to amCharts directory instead. The "pathToImages" will be automatically set and does not need to be in the chart config, unless you keep your images separately from other amCharts files.
percentPrecision | Number | 2 | Precision of percent values. -1 means percent values won't be rounded at all and show as they are.
plotAreaBorderAlpha | Number | 0 | The opacity of plot area's border. Value range is 0 - 1.
plotAreaBorderColor | Color | #000000 | The color of the plot area's border. Note, the it is invisible by default, as plotAreaBorderAlpha default value is 0. Set it to a value higher than 0 to make it visible.
plotAreaFillAlphas | Number | 0 | Opacity of plot area. Plural form is used to keep the same property names as our Flex charts'. Flex charts can accept array of numbers to generate gradients. Although you can set array here, only first value of this array will be used.
plotAreaFillColors | Color | #FFFFFF | You can set both one color if you need a solid color or array of colors to generate gradients, for example: ["#000000", "#0000CC"]
plotAreaGradientAngle | Number | 0 | If you are using gradients to fill the plot area, you can use this property to set gradient angle. The only allowed values are horizontal and vertical: 0, 90, 180, 270.
precision | Number | -1 | Precision of values. -1 means values won't be rounded at all and show as they are.
prefixesOfBigNumbers | Array[Object] | [{"number":1e+3,"prefix":"k"},{"number":1e+6,"prefix":"M"},{"number":1e+9,"prefix":"G"},{"number":1e+12,"prefix":"T"},{"number":1e+15,"prefix":"P"},{"number":1e+18,"prefix":"E"},{"number":1e+21,"prefix":"Z"},{"number":1e+24,"prefix":"Y"}] | Prefixes which are used to make big numbers shorter: 2M instead of 2000000, etc. Prefixes are used on value axes and in the legend. To enable prefixes, set usePrefixes property to true.
prefixesOfSmallNumbers | Array[Object] | [{"number":1e-24, "prefix":"y"},{"number":1e-21, "prefix":"z"},{"number":1e-18, "prefix":"a"},{"number":1e-15, "prefix":"f"},{"number":1e-12, "prefix":"p"},{"number":1e-9, "prefix":"n"},{"number":1e-6, "prefix":"μ"},{"number":1e-3, "prefix":"m"}] | Prefixes which are used to make small numbers shorter: 2μ instead of 0.000002, etc. Prefixes are used on value axes and in the legend. To enable prefixes, set usePrefixes property to true.
processCount | Number | 1000 | If processTimeout is > 0, 1000 data items will be parsed at a time, then the chart will make pause and continue parsing data until it finishes.
processTimeout | Number | 0 | If you set it to 1 millisecond or some bigger value, chart will be built in chunks instead of all at once. This is useful if you work with a lot of data and the initial build of the chart takes a lot of time, which freezes the whole web application by not allowing other processes to do their job while the chart is busy.
responsive | Object |  | A config object for Responsive plugin. Please refer to the following page for more information.
sequencedAnimation | Boolean | true | Specifies whether the animation should be sequenced or all objects should appear at once.
startAlpha | Number | 1 | The initial opacity of the column/line. If you set startDuration to a value higher than 0, the columns/lines will fade in from startAlpha. Value range is 0 - 1.
startDuration | Number | 0 | Duration of the animation, in seconds.
startEffect | String | elastic | Animation effect. Possible values are: easeOutSine, easeInSine, elastic, bounce
svgIcons | Boolean | true | Charts will use SVG icons (some are loaded from images folder and some are drawn inline) if browser supports SVG. his makes icons look good on retina displays on all resolutions.
tapToActivate | Boolean | true | Charts which require gestures like swipe (charts with scrollbar/cursor) or pinch (maps) used to prevent regular page scrolling and could result page to stick to the same spot if the chart occupied whole screen. Now, in order these gestures to start working user has to touch the chart/maps once. Regular touch events like touching on the bar/slice/map area do not require the first tap and will show balloons and perform other tasks as usual. If you have a map or chart which occupies full screen and your page does not require scrolling, set tapToActivate to false – this will bring old behavior back.
theme | String | none | Theme of a chart. Config files of themes can be found in amcharts/themes/ folder. More info about using themes.
thousandsSeparator | String | , | Thousands separator.
titles | Array[Title] | [] | Array of Title objects.
touchClickDuration | Number | 0 | If you set it to 200 (milliseconds) or so, the chart will fire clickGraphItem or clickSlice (AmSlicedChart) or clickMapObject only if user holds his/her finger for 0.2 seconds (200 ms) on the column/bullet/slice/map object.
trendLines | Array[TrendLine] |  | Array of trend lines added to a chart. You can add trend lines to a chart using this array or access already existing trend lines
type | String |  | Type of a chart. Required when creating chart using JSON. Possible types are: serial, pie, xy, radar, funnel, gauge, map, stock.
urlTarget | String | _self | Target of url.
usePrefixes | Boolean | false | If true, prefixes will be used for big and small numbers. You can set arrays of prefixes via prefixesOfSmallNumbers and prefixesOfBigNumbers properties.
valueAxes | Array[ValueAxis] | ValueAxis | The array of value axes. Chart creates one value axis automatically, so if you need only one value axis, you don't need to create it.
version | String |  | Read-only. Indicates current version of a script.
zoomOutButtonAlpha | Number | 0 | Opacity of zoom-out button background.
zoomOutButtonColor | Color | #e5e5e5 | Zoom-out button background color.
zoomOutButtonImage | String | lens | Name of zoom-out button image. In the images folder there is another lens image, called lensWhite.png. You might want to have white lens when background is dark. Or you can simply use your own image. Note, you don't have to set image extension. If svgIcons is set to true (default) .svg will be added to the file name if SVG is supported by the browser, otherwise – .png.
zoomOutButtonImageSize | Number | 17 | Size of zoom-out button image
zoomOutButtonPadding | Number | 8 | Padding around the text and image.
zoomOutButtonRollOverAlpha | Number | 1 | Opacity of zoom-out button background when mouse is over it.
zoomOutButtonTabIndex | Number |  | In case you set it to some number, the chart will set focus on zoom-out button when user clicks tab key. When a focus is set, screen readers like NVDA Screen reader will read zoomOutText. If user clicks Enter when a focus is set, the chart will zoom-out. Note, not all browsers and readers support this.
zoomOutText | String | Show all | Text in the zoom-out button.

### Methods Hide inherited Show inherited

Name | Parameters | Returns | Description
--- | --- | --- | ---
addChartCursor(cursor) | cursor - instace of ChartCursor |  | Adds a ChartCursor object to a chart
addChartScrollbar(scrollbar) | scrollbar - instance of ChartScrollbar |  | Adds a ChartScrollbar to a chart
addGraph(graph) | graph - instance of AmGraph |  | Adds a graph to the chart.
addLabel(x, y, text, align, size, color, rotation, alpha, bold, url) | x - horizontal coordinate y - vertical coordinate text - label's text align - alignment (left/right/center) size - text size color - text color rotation - angle of rotation alpha - label alpha bold - specifies if text is bold (true/false), url - url of a |  | Adds a label on a chart. You can use it for labeling axes, adding chart title, etc. x and y coordinates can be set in number, percent, or a number with ! in front of it - coordinate will be calculated from right or bottom instead of left or top.
addLegend(legend, legendDivID) | legend - AmLegend, legendDivID - id or reference to legend div (optional) |  | Adds a legend to the chart. By default, you don't need to create div for your legend, however if you want it to be positioned in some different way, you can create div anywhere you want and pass id or reference to your div as a second parameter. (NOTE: This method will not work on StockPanel.)
addListener(type, handler) | type - string like 'dataUpdated' (should be listed in 'events' section of this class or classes which extend this class). handler - function which is called when event happens |  | Adds event listener to the object.
addTitle(text, size, color, alpha, bold) | text - text of a title size - font size color - title color alpha - title opacity bold - boolean value indicating if title should be bold. |  | Adds title to the top of the chart. Pie, Radar positions are updated so that they won't overlap. Plot area of Serial/XY chart is also updated unless autoMargins property is set to false. You can add any number of titles - each of them will be placed in a new line. To remove titles, simply clear titles array: chart.titles = []; and call chart.validateNow() method.
addTrendLine(trendLine) | trendLine |  | Adds a TrendLine to a chart. You should call chart.validateNow() after this method is called in order the trend line to be visible.
addValueAxis(axis) | axis - instance of ValueAxis |  | Adds value axis to the chart. One value axis is created automatically, so if you don't want to change anything or add more value axes, you don't need to add it.
animateAgain() |  |  | You can trigger the animation of the chart.
clear() |  |  | Clears the chart area, intervals, etc.
clearLabels() |  |  | Removes all labels added to the chart.
getGraphById(id) | id - graph's id, String | AmGraph | Returns graph by id.
getValueAxisById(id) | id - value axis' id, String | ValueAxis | Returns value axis by id.
hideGraph(graph) | graph - instance of AmGraph |  | Hide the graph (if it is visible). Usually this method is called from the Legend, when you click on the legend marker.
hideGraphsBalloon(graph) | graph - instance of AmGraph |  | Hide value balloon of a graph. Usually this method is called from the Legend, when you click on the legend text.
highlightGraph(graph) | graph - instance of AmGraph |  | Highlight the graph. Usually this method is called from the Legend, when you roll-over the legend entry.
invalidateSize() |  |  | Use this method to force the chart to resize to it's current container size.
makeChart(container, config, delay) | container - id of a DIV or reference of the container element - config contains the whole setup for the chart - delay in milliseconds to delay the initiation of the chart | chart instance | This method allows to create charts with a single config.
removeChartCursor() |  |  | Removes cursor from the chart
removeChartScrollbar() |  |  | Removes scrollbar from the chart
removeGraph(graph) | graph - instance of AmGraph |  | Removes graph from the chart.
removeLegend() |  |  | Removes chart's legend.
removeListener(chart, type, handler) | chart - chart object, type - event name, handler - method |  | Removes event listener from chart object.
removeTrendLine(trendLine) | trendLine |  | Removes a trend line from a chart. You should call chart.validateNow() in order the changes to be visible.
removeValueAxis(axis) | axis - instance of ValueAxis |  | Removes value axis from the chart. When you remove value axis, all graphs assigned to this axis are also removed.
showGraph(graph) | graph - instance of AmGraph |  | Show the graph (if it is hidden). Usually this method is called from the Legend, when you click on the legend marker.
showGraphsBalloon(graph) | graph - instance of AmGraph |  | Show value balloon of a graph. Usually this method is called from the Legend, when you click on the legend text.
unhighlightGraph(graph) | graph - instance of AmGraph |  | UnhighlightGraph the graph. Usually this method is called from the Legend, when you roll-out the legend entry.
validateData() |  |  | This method should be called after data in your data provider changed or a new array was set to dataProvider. After calling this method the chart will parse data and redraw.
validateNow(validateData, skipEvents) |  |  | This method should be called after you changed one or more properties of any class. The chart will redraw after this method is called.Both attributes, validateData and skipEvents are optional (false by default).
write(container) | container - id of a DIV or DIV object which will hold the chart |  | Adds chart to the specified DIV.
zoomOut() |  |  | Zooms out, charts shows all available data.
zoomOutValueAxes() |  |  | Zooms-out value axes.

### Events Hide inherited Show inherited

Name | Event object | Description
--- | --- | ---
animationFinished | {type:"animationFinished", chart:AmChart} | Dispatched when initial chart animations are finished.
buildStarted | {type:"buildStarted", chart:AmChart} | Fired just before the chart starts to build itself for the first time. Note: you might need to set processTimeout to > 0 value in order to register this event properly.
clickGraph | {type:"clickGraph", graph:AmGraph, chart:AmChart, event:MouseEvent} | Dispatched when user clicks on a graph.
clickGraphItem | {type:"clickGraphItem", graph:AmGraph, item:GraphDataItem, index:Number, chart:AmChart, event:MouseEvent} | Dispatched when user clicks on the data item (column/bullet)
dataUpdated | {type:"dataUpdated", chart:AmChart} | Dispatched when chart is build for the first time or after validateData() method was called.
drawn | {type:"drawn", chart:AmChart} | Fired every time chart is drawn or re-drawn - graph toggle, chart area resize, etc. Please note, that this event will not fire on zoom. Use "zoomed" event instead to catch those events.
init | {type:"init", chart:AmChart} | Dispatched when chart is build for the first time.
rendered | {type:"rendered", chart:AmChart} | Dispatched when the chart is build for the first time and each time after chart.validateNow() method is called and the chart is build.
rightClickGraphItem | {type:"rightClickGraphItem", graph:AmGraph, item:GraphDataItem, index:Number, chart:AmChart, event:MouseEvent} | Dispatched when user right-clicks on the data item (column/bullet)
rollOutGraph | {type:"rollOutGraph", graph:AmGraph, chart:AmChart, event:MouseEvent} | Dispatched when user rolls-out of a graph.
rollOutGraphItem | {type:"rollOutGraphItem", graph:AmGraph, item:GraphDataItem, index:Number, chart:AmChart, event:MouseEvent} | Dispatched when user rolls-out of the data item (column/bullet)
rollOverGraph | {type:"rollOverGraph", graph:AmGraph, chart:AmChart, event:MouseEvent} | Dispatched when user rolls-over a graph.
rollOverGraphItem | {type:"rollOverGraphItem", graph:AmGraph, item:GraphDataItem, index:Number, chart:AmChart, event:MouseEvent} | Dispatched when user rolls-over data item (column/bullet)