/** * Constructs a new bar mark with default properties. Bars are not typically * constructed directly, but by adding to a panel or an existing mark via * {@link pv.Mark#add}. * * @class Represents a bar: an axis-aligned rectangle that can be stroked and * filled. Bars are used for many chart types, including bar charts, histograms * and Gantt charts. Bars can also be used as decorations, for example to draw a * frame border around a panel; in fact, a panel is a special type (a subclass) * of bar. * *

Bars can be positioned in several ways. Most commonly, one of the four * corners is fixed using two margins, and then the width and height properties * determine the extent of the bar relative to this fixed location. For example, * using the bottom and left properties fixes the bottom-left corner; the width * then extends to the right, while the height extends to the top. As an * alternative to the four corners, a bar can be positioned exclusively using * margins; this is convenient as an inset from the containing panel, for * example. See {@link pv.Mark} for details on the prioritization of redundant * positioning properties. * *

See also the Bar guide. * * @extends pv.Mark */ pv.Bar = function() { pv.Mark.call(this); }; pv.Bar.prototype = pv.extend(pv.Mark) .property("width", Number) .property("height", Number) .property("lineWidth", Number) .property("strokeStyle", pv.color) .property("fillStyle", pv.color); pv.Bar.prototype.type = "bar"; /** * The width of the bar, in pixels. If the left position is specified, the bar * extends rightward from the left edge; if the right position is specified, the * bar extends leftward from the right edge. * * @type number * @name pv.Bar.prototype.width */ /** * The height of the bar, in pixels. If the bottom position is specified, the * bar extends upward from the bottom edge; if the top position is specified, * the bar extends downward from the top edge. * * @type number * @name pv.Bar.prototype.height */ /** * The width of stroked lines, in pixels; used in conjunction with * strokeStyle to stroke the bar's border. * * @type number * @name pv.Bar.prototype.lineWidth */ /** * The style of stroked lines; used in conjunction with lineWidth to * stroke the bar's border. The default value of this property is null, meaning * bars are not stroked by default. * * @type string * @name pv.Bar.prototype.strokeStyle * @see pv.color */ /** * The bar fill style; if non-null, the interior of the bar is filled with the * specified color. The default value of this property is a categorical color. * * @type string * @name pv.Bar.prototype.fillStyle * @see pv.color */ /** * Default properties for bars. By default, there is no stroke and the fill * style is a categorical color. * * @type pv.Bar */ pv.Bar.prototype.defaults = new pv.Bar() .extend(pv.Mark.prototype.defaults) .lineWidth(1.5) .fillStyle(pv.Colors.category20().by(pv.parent));