123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- var zrUtil = require("zrender/lib/core/util");
- var Scale = require("./Scale");
- var OrdinalMeta = require("../data/OrdinalMeta");
- var scaleProto = Scale.prototype;
- var OrdinalScale = Scale.extend({
- type: 'ordinal',
-
- init: function (ordinalMeta, extent) {
-
-
- if (!ordinalMeta || zrUtil.isArray(ordinalMeta)) {
- ordinalMeta = new OrdinalMeta({
- categories: ordinalMeta
- });
- }
- this._ordinalMeta = ordinalMeta;
- this._extent = extent || [0, ordinalMeta.categories.length - 1];
- },
- parse: function (val) {
- return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val)
- : Math.round(val);
- },
- contain: function (rank) {
- rank = this.parse(rank);
- return scaleProto.contain.call(this, rank) && this._ordinalMeta.categories[rank] != null;
- },
-
- normalize: function (val) {
- return scaleProto.normalize.call(this, this.parse(val));
- },
- scale: function (val) {
- return Math.round(scaleProto.scale.call(this, val));
- },
-
- getTicks: function () {
- var ticks = [];
- var extent = this._extent;
- var rank = extent[0];
- while (rank <= extent[1]) {
- ticks.push(rank);
- rank++;
- }
- return ticks;
- },
-
- getLabel: function (n) {
- if (!this.isBlank()) {
-
- return this._ordinalMeta.categories[n];
- }
- },
-
- count: function () {
- return this._extent[1] - this._extent[0] + 1;
- },
-
- unionExtentFromData: function (data, dim) {
- this.unionExtent(data.getApproximateExtent(dim));
- },
- getOrdinalMeta: function () {
- return this._ordinalMeta;
- },
- niceTicks: zrUtil.noop,
- niceExtent: zrUtil.noop
- });
- OrdinalScale.create = function () {
- return new OrdinalScale();
- };
- var _default = OrdinalScale;
- module.exports = _default;
|