提交 f6612561 编写于 作者: S sushuang

Fix heatmap dimensions.

上级 96f2fae1
......@@ -6,7 +6,9 @@ export default SeriesModel.extend({
type: 'series.heatmap',
getInitialData: function (option, ecModel) {
return createListFromArray(this.getSource(), this);
return createListFromArray(this.getSource(), this, {
generateCoord: 'value'
});
},
preventIncremental: function () {
......
......@@ -12,8 +12,12 @@ import {enableDataStack} from '../../data/helper/dataStackHelper';
/**
* @param {module:echarts/data/Source|Array} source Or raw data.
* @param {module:echarts/model/Series} seriesModel
* @param {Object} [opt]
* @param {string} [opt.generateCoord]
*/
function createListFromArray(source, seriesModel) {
function createListFromArray(source, seriesModel, opt) {
opt = opt || {};
if (!Source.isInstance(source)) {
source = Source.seriesDataToSource(source);
}
......@@ -48,7 +52,8 @@ function createListFromArray(source, seriesModel) {
}
var dimInfoList = createDimensions(source, {
coordDimensions: coordSysDimDefs
coordDimensions: coordSysDimDefs,
generateCoord: opt.generateCoord
});
var firstCategoryDimIndex;
......
......@@ -23,7 +23,8 @@ var RadarSeries = SeriesModel.extend({
getInitialData: function (option, ecModel) {
return createListSimply(this, {
generateCoord: 'indicator_'
generateCoord: 'indicator_',
generateCoordCount: Infinity
});
},
......
......@@ -29,11 +29,13 @@ import {OTHER_DIMENSIONS} from './dimensionHelper';
* @param {Array.<Object|string>} [opt.dimsDef] option.series.dimensions User defined dimensions
* For example: ['asdf', {name, type}, ...].
* @param {Object|HashMap} [opt.encodeDef] option.series.encode {x: 2, y: [3, 1], tooltip: [1, 2], label: 3}
* @param {string} [opt.generateCoord] Generate coord dim with the given prefix.
* The generated dim names will be:
* generateCoord + 0, generateCoord + 1, ...
* @param {string} [opt.generateCoord] Generate coord dim with the given name.
* If not specified, extra dim names will be:
* 'value', 'value0', 'value1', ...
* @param {number} [opt.generateCoordCount] By default, the generated dim name is `generateCoord`.
* If `generateCoordCount` specified, the generated dim names will be:
* `generateCoord` + 0, `generateCoord` + 1, ...
* can be Infinity, indicate that use all of the remain columns.
* @param {number} [opt.dimCount] If not specified, guess by the first data item.
* @param {number} [opt.encodeDefaulter] If not specified, auto find the next available data dim.
* @return {Array.<Object>} [{
......@@ -162,8 +164,11 @@ function completeDimensions(sysDims, source, opt) {
}
// Make sure the first extra dim is 'value'.
var doesGenerateCoord = !!opt.generateCoord;
var extra = opt.generateCoord || 'value';
var generateCoord = opt.generateCoord;
var generateCoordCount = opt.generateCoordCount;
var fromZero = generateCoordCount != null;
generateCoordCount = generateCoord ? (generateCoordCount || 1) : 0;
var extra = generateCoord || 'value';
// Set dim `name` and other `coordDim` and other props.
for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {
......@@ -172,10 +177,13 @@ function completeDimensions(sysDims, source, opt) {
if (coordDim == null) {
resultItem.coordDim = genName(
extra, coordDimNameMap, doesGenerateCoord
extra, coordDimNameMap, fromZero
);
resultItem.coordDimIndex = 0;
resultItem.isExtraCoord = !doesGenerateCoord;
if (!generateCoord || generateCoordCount <= 0) {
resultItem.isExtraCoord = true;
}
generateCoordCount--;
}
resultItem.name == null && (resultItem.name = genName(
......
......@@ -10,6 +10,7 @@ import completeDimensions from './completeDimensions';
* @param {Array.<string|Object>} [opt.coordDimensions=[]]
* @param {number} [opt.dimensionsCount]
* @param {string} [opt.generateCoord]
* @param {string} [opt.generateCoordCount]
* @param {Array.<string|Object>} [opt.dimensionsDefine=source.dimensionsDefine] Overwrite source define.
* @param {Object|HashMap} [opt.encodeDefine=source.encodeDefine] Overwrite source define.
* @return {Array.<Object>} dimensionsInfo
......@@ -20,6 +21,7 @@ export default function (source, opt) {
dimsDef: opt.dimensionsDefine || source.dimensionsDefine,
encodeDef: opt.encodeDefine || source.encodeDefine,
dimCount: opt.dimensionsCount,
generateCoord: opt.generateCoord
generateCoord: opt.generateCoord,
generateCoordCount: opt.generateCoordCount
});
}
import {each, filter, createHashMap, assert} from 'zrender/src/core/util';
import {each, createHashMap, assert} from 'zrender/src/core/util';
import { __DEV__ } from '../../config';
export var OTHER_DIMENSIONS = createHashMap([
......@@ -30,8 +30,8 @@ export function summarizeDimensions(data) {
if (mayLabelDimType(dimItem.type)) {
// Use the last coord dim (and label friendly) as default label,
// because both show x, y on label is not look good, and usually
// y axis is more focusd conventionally.
// because both show x, y on label is not look good, and
// conventionally y axis is focused more.
defaultedLabel[0] = dimName;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册