Version 3.18.1

APIs

  • Begin typing in the search box above to see results.
Show:

File: charts/js/CandlestickSeries.js

 /**
 * Provides functionality for creating a candlestick series.
 *
 * @module charts
 * @submodule series-candlestick
 */
 /**
 * The CandlestickSeries class renders columns (candles) and lines (wicks) representing the open, high, low and close
 * values for a chart.
 *
 * @class CandlestickSeries
 * @extends RangeSeries
 * @constructor
 * @param {Object} config (optional) Configuration parameters.
 * @submodule series-candlestick
 */
 function CandlestickSeries()
 {
 CandlestickSeries.superclass.constructor.apply(this, arguments);
 }
 
 CandlestickSeries.NAME = "candlestickSeries";
 
 CandlestickSeries.ATTRS = {
 /**
 * Read-only attribute indicating the type of series.
 *
 * @attribute type
 * @type String
 * @readOnly
 * @default candlestick
 */
 type: {
 value: "candlestick"
 },
 
 /**
 * The graphic in which drawings will be rendered.
 *
 * @attribute graphic
 * @type Graphic
 */
 graphic: {
 lazyAdd: false,
 
 setter: function(val) {
 //woraround for Attribute order of operations bug
 if(!this.get("rendered")) {
 this.set("rendered", true);
 }
 this.set("upcandle", val.addShape({
 type: "path"
 }));
 this.set("downcandle", val.addShape({
 type: "path"
 }));
 this.set("wick", val.addShape({
 type: "path"
 }));
 return val;
 }
 },
 
 /**
 * Reference to the candlestick used when the close value is higher than the open value.
 *
 * @attribute upcandle
 * @type Path
 */
 upcandle: {},
 
 /**
 * Reference to the candlestick used when the open value is higher than the close value.
 *
 * @attribute downcandle
 * @type Path
 */
 downcandle: {},
 
 /**
 * Reference to the line drawn between the high and low values.
 *
 * @attribute wick
 * @type Path
 */
 wick: {}
 
 /**
 * Style properties used for drawing candles and wicks. This attribute is inherited from `RangeSeries`. Below are the default values:
 * <dl>
 * <dt>upcandle</dt><dd>Properties for a candle representing a period that closes higher than it opens.
 * <dl>
 * <dt>fill</dt><dd>A hash containing the following values:
 * <dl>
 * <dt>color</dt><dd>Color of the fill. The default value is "#00aa00".</dd>
 * </dd>
 * <dt>alpha</dt><dd>Number from 0 to 1 indicating the opacity of the marker fill. The default value is 1.</dd>
 * </dl>
 * </dd>
 * <dt>border</dt><dd>A hash containing the following values:
 * <dl>
 * <dt>color</dt><dd>Color of the border. The default value is "#000000".</dd>
 * <dt>alpha</dt><dd>Number from 0 to 1 indicating the opacity of the marker border. The default value is 1.</dd>
 * <dt>weight</dt><dd>Number indicating the width of the border. The default value is 0.</dd>
 * </dl>
 * </dd>
 * </dl>
 * </dd>
 * <dt>downcandle</dt><dd>Properties for a candle representing a period that opens higher than it closes.
 * <dl>
 * <dt>fill</dt><dd>A hash containing the following values:
 * <dl>
 * <dt>color</dt><dd>Color of the fill. The default value is "#aa0000".</dd>
 * </dd>
 * <dt>alpha</dt><dd>Number from 0 to 1 indicating the opacity of the marker fill. The default value is 1.</dd>
 * </dl>
 * </dd>
 * <dt>border</dt><dd>A hash containing the following values:
 * <dl>
 * <dt>color</dt><dd>Color of the border. The default value is "#000000".</dd>
 * <dt>alpha</dt><dd>Number from 0 to 1 indicating the opacity of the marker border. The default value is 1.</dd>
 * <dt>weight</dt><dd>Number indicating the width of the border. The default value is 0.</dd>
 * </dl>
 * </dd>
 * </dl>
 * </dd>
 * <dt>wick</dt><dd>Properties for the wick, which is a line drawn from the high point of the period to the low point of the period.
 * <dl>
 * <dt>color</dt><dd>The color of the wick. The default value is "#000000".</dd>
 * <dt>weight</dt><dd>The weight of the wick. The default value is 1.</dd>
 * <dt>alpha</dt><dd>Number from 0 to 1 indicating the opacity of the wick. The default value is 1.</dd>
 * </dl>
 * </dd>
 * </dl>
 *
 * @attribute styles
 * @type Object
 */
 };
 
 Y.extend(CandlestickSeries, Y.RangeSeries, {
 /**
 * Draws markers for an Candlestick series.
 *
 * @method
 * @param {Array} xcoords The xcoordinates to be plotted.
 * @param {Array} opencoords The coordinates representing the open values.
 * @param {Array} highcoords The coordinates representing the high values.
 * @param {Array} lowcoords The coordinates representing the low values.
 * @param {Array} closecoords The coordinates representing the close values.
 * @param {Number} len The number of x coordinates to plot.
 * @param {Number} width The width of each candlestick marker.
 * @param {Number} halfwidth Half the width of each candlestick marker.
 * @param {Object} styles The styles for the series.
 * @private
 */
 _drawMarkers: function(xcoords, opencoords, highcoords, lowcoords, closecoords, len, width, halfwidth, styles)
 {
 var upcandle = this.get("upcandle"),
 downcandle = this.get("downcandle"),
 candle,
 wick = this.get("wick"),
 wickStyles = styles.wick,
 wickWidth = wickStyles.width,
 cx,
 opencoord,
 highcoord,
 lowcoord,
 closecoord,
 left,
 right,
 top,
 bottom,
 height,
 leftPadding = styles.padding.left,
 up,
 i,
 isNumber = Y.Lang.isNumber;
 upcandle.set(styles.upcandle);
 downcandle.set(styles.downcandle);
 wick.set({
 fill: wickStyles.fill,
 stroke: wickStyles.stroke,
 shapeRendering: wickStyles.shapeRendering
 });
 upcandle.clear();
 downcandle.clear();
 wick.clear();
 for(i = 0; i < len; i = i + 1)
 {
 cx = Math.round(xcoords[i] + leftPadding);
 left = cx - halfwidth;
 right = cx + halfwidth;
 opencoord = Math.round(opencoords[i]);
 highcoord = Math.round(highcoords[i]);
 lowcoord = Math.round(lowcoords[i]);
 closecoord = Math.round(closecoords[i]);
 up = opencoord > closecoord;
 top = up ? closecoord : opencoord;
 bottom = up ? opencoord : closecoord;
 height = bottom - top;
 candle = up ? upcandle : downcandle;
 if(candle && isNumber(left) && isNumber(top) && isNumber(width) && isNumber(height))
 {
 candle.drawRect(left, top, width, height);
 }
 if(isNumber(cx) && isNumber(highcoord) && isNumber(lowcoord))
 {
 wick.drawRect(cx - wickWidth/2, highcoord, wickWidth, lowcoord - highcoord);
 }
 }
 upcandle.end();
 downcandle.end();
 wick.end();
 wick.toBack();
 },
 
 /**
 * Toggles visibility
 *
 * @method _toggleVisible
 * @param {Boolean} visible indicates visibilitye
 * @private
 */
 _toggleVisible: function(visible)
 {
 this.get("upcandle").set("visible", visible);
 this.get("downcandle").set("visible", visible);
 this.get("wick").set("visible", visible);
 },
 
 /**
 * Destructor implementation for the CartesianSeries class. Calls destroy on all Graphic instances.
 *
 * @method destructor
 * @protected
 */
 destructor: function()
 {
 var upcandle = this.get("upcandle"),
 downcandle = this.get("downcandle"),
 wick = this.get("wick");
 if(upcandle)
 {
 upcandle.destroy();
 }
 if(downcandle)
 {
 downcandle.destroy();
 }
 if(wick)
 {
 wick.destroy();
 }
 },
 
 /**
 * Gets the default value for the `styles` attribute. Overrides
 * base implementation.
 *
 * @method _getDefaultStyles
 * @return Object
 * @private
 */
 _getDefaultStyles: function()
 {
 var styles = {
 upcandle: {
 shapeRendering: "crispEdges",
 fill: {
 color: "#00aa00",
 alpha: 1
 },
 stroke: {
 color: "#000000",
 alpha: 1,
 weight: 0
 }
 },
 downcandle: {
 shapeRendering: "crispEdges",
 fill: {
 color: "#aa0000",
 alpha: 1
 },
 stroke: {
 color: "#000000",
 alpha: 1,
 weight: 0
 }
 },
 wick: {
 shapeRendering: "crispEdges",
 width: 1,
 fill: {
 color: "#000000",
 alpha: 1
 },
 stroke: {
 color: "#000000",
 alpha: 1,
 weight: 0
 }
 }
 };
 return this._mergeStyles(styles, CandlestickSeries.superclass._getDefaultStyles());
 }
 });
 Y.CandlestickSeries = CandlestickSeries;
 
 

AltStyle によって変換されたページ (->オリジナル) /