Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
missman
incubator-echarts
提交
b96cc6b3
I
incubator-echarts
项目概览
missman
/
incubator-echarts
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
incubator-echarts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b96cc6b3
编写于
12月 20, 2015
作者:
L
lang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Simplify List#initData
上级
fa764012
变更
23
隐藏空白更改
内联
并排
Showing
23 changed file
with
214 addition
and
241 deletion
+214
-241
src/chart/bar/BarView.js
src/chart/bar/BarView.js
+2
-2
src/chart/geoLine/GeoLineSeries.js
src/chart/geoLine/GeoLineSeries.js
+6
-2
src/chart/heatmap/HeatmapView.js
src/chart/heatmap/HeatmapView.js
+1
-1
src/chart/helper/Line.js
src/chart/helper/Line.js
+1
-1
src/chart/helper/createGraphFromNodeEdge.js
src/chart/helper/createGraphFromNodeEdge.js
+13
-1
src/chart/helper/createListFromArray.js
src/chart/helper/createListFromArray.js
+65
-54
src/chart/helper/whiskerBoxCommon.js
src/chart/helper/whiskerBoxCommon.js
+8
-3
src/chart/map/MapSeries.js
src/chart/map/MapSeries.js
+2
-3
src/chart/pie/PieView.js
src/chart/pie/PieView.js
+1
-1
src/chart/radar/RadarSeries.js
src/chart/radar/RadarSeries.js
+2
-2
src/chart/treemap/TreemapSeries.js
src/chart/treemap/TreemapSeries.js
+2
-2
src/component/helper/MapDraw.js
src/component/helper/MapDraw.js
+1
-0
src/component/marker/MarkLineView.js
src/component/marker/MarkLineView.js
+7
-7
src/component/marker/MarkPointView.js
src/component/marker/MarkPointView.js
+7
-9
src/coord/axisHelper.js
src/coord/axisHelper.js
+10
-2
src/coord/cartesian/Grid.js
src/coord/cartesian/Grid.js
+25
-22
src/data/Graph.js
src/data/Graph.js
+0
-5
src/data/List.js
src/data/List.js
+39
-120
src/echarts.js
src/echarts.js
+4
-1
src/model/Series.js
src/model/Series.js
+1
-1
src/util/model.js
src/util/model.js
+15
-1
src/util/symbol.js
src/util/symbol.js
+1
-0
src/visual/symbol.js
src/visual/symbol.js
+1
-1
未找到文件。
src/chart/bar/BarView.js
浏览文件 @
b96cc6b3
...
...
@@ -157,7 +157,7 @@ define(function (require) {
if
(
labelModel
.
get
(
'
show
'
))
{
setLabel
(
rectStyle
,
labelModel
,
color
,
seriesModel
.
getFormattedLabel
(
idx
,
'
normal
'
)
||
data
.
getRawValue
(
idx
),
seriesModel
.
getFormattedLabel
(
idx
,
'
normal
'
)
||
seriesModel
.
getRawValue
(
idx
),
labelPositionOutside
);
}
...
...
@@ -167,7 +167,7 @@ define(function (require) {
if
(
hoverLabelModel
.
get
(
'
show
'
))
{
setLabel
(
hoverStyle
,
hoverLabelModel
,
color
,
seriesModel
.
getFormattedLabel
(
idx
,
'
emphasis
'
)
||
data
.
getRawValue
(
idx
),
seriesModel
.
getFormattedLabel
(
idx
,
'
emphasis
'
)
||
seriesModel
.
getRawValue
(
idx
),
labelPositionOutside
);
}
...
...
src/chart/geoLine/GeoLineSeries.js
浏览文件 @
b96cc6b3
...
...
@@ -29,8 +29,12 @@ define(function (require) {
var
toData
=
new
List
([
'
lng
'
,
'
lat
'
],
this
);
var
lineData
=
new
List
([
'
value
'
],
this
);
fromData
.
initData
(
fromDataArr
,
null
,
'
geoCoord
'
);
toData
.
initData
(
toDataArr
,
null
,
'
geoCoord
'
);
function
geoCoordGetter
(
item
,
dim
,
dataIndex
,
dimIndex
)
{
return
item
.
geoCoord
&&
item
.
geoCoord
[
dimIndex
];
}
fromData
.
initData
(
fromDataArr
,
null
,
geoCoordGetter
);
toData
.
initData
(
toDataArr
,
null
,
geoCoordGetter
);
lineData
.
initData
(
lineDataArr
);
this
.
fromData
=
fromData
;
...
...
src/chart/heatmap/HeatmapView.js
浏览文件 @
b96cc6b3
...
...
@@ -51,7 +51,7 @@ define(function (require) {
var
labelModel
=
itemModel
.
getModel
(
'
label.normal
'
);
var
hoverLabelModel
=
itemModel
.
getModel
(
'
label.emphasis
'
);
var
rawValue
=
data
.
getRawValue
(
idx
);
var
rawValue
=
seriesModel
.
getRawValue
(
idx
);
var
defaultText
=
'
-
'
;
if
(
rawValue
&&
rawValue
[
2
]
!=
null
)
{
defaultText
=
rawValue
[
2
];
...
...
src/chart/helper/Line.js
浏览文件 @
b96cc6b3
...
...
@@ -229,7 +229,7 @@ define(function (require) {
var
labelHoverModel
=
itemModel
.
getModel
(
'
label.emphasis
'
);
var
textStyleHoverModel
=
labelHoverModel
.
getModel
(
'
textStyle
'
);
var
defaultText
=
numberUtil
.
round
(
seriesModel
.
get
Data
().
get
RawValue
(
idx
));
var
defaultText
=
numberUtil
.
round
(
seriesModel
.
getRawValue
(
idx
));
line
.
setStyle
(
zrUtil
.
extend
(
{
stroke
:
lineData
.
getItemVisual
(
idx
,
'
color
'
)
...
...
src/chart/helper/createGraphFromNodeEdge.js
浏览文件 @
b96cc6b3
...
...
@@ -9,7 +9,10 @@ define(function (require) {
return
function
(
nodes
,
edges
,
hostModel
,
directed
)
{
var
graph
=
new
Graph
(
directed
);
for
(
var
i
=
0
;
i
<
nodes
.
length
;
i
++
)
{
graph
.
addNode
(
zrUtil
.
retrieve
(
nodes
[
i
].
id
,
nodes
[
i
].
name
),
i
);
graph
.
addNode
(
zrUtil
.
retrieve
(
// Id, name, dataIndex
nodes
[
i
].
id
,
nodes
[
i
].
name
,
i
),
i
);
}
var
linkNameList
=
[];
...
...
@@ -23,6 +26,15 @@ define(function (require) {
}
}
// If edge has sourceValue and targetValue
// graph.eachEdge(function (edge, idx) {
// var edgeRawData = edges[i];
// if (edgeRawData.sourceValue != null && edgeRawData.targetValue != null) {
// }
// });
// FIXME
var
dimensionNames
=
completeDimensions
([
'
value
'
],
nodes
);
...
...
src/chart/helper/createListFromArray.js
浏览文件 @
b96cc6b3
...
...
@@ -3,7 +3,23 @@ define(function(require) {
var
List
=
require
(
'
../../data/List
'
);
var
completeDimensions
=
require
(
'
../../data/helper/completeDimensions
'
);
var
zrUtil
=
require
(
'
zrender/core/util
'
);
function
firstDataNotNull
(
data
)
{
var
i
=
0
;
while
(
i
<
data
.
length
&&
data
[
i
]
==
null
)
{
i
++
;
}
return
data
[
i
];
}
function
ifNeedCompleteOrdinalData
(
data
)
{
var
sampleItem
=
firstDataNotNull
(
data
);
return
sampleItem
!=
null
&&
!
zrUtil
.
isArray
(
getItemValue
(
sampleItem
));
}
function
getItemValue
(
item
)
{
return
item
&&
(
item
.
value
==
null
?
item
:
item
.
value
);
}
/**
* Helper function to create a list from option data
*/
...
...
@@ -14,12 +30,27 @@ define(function(require) {
var
result
=
creaters
[
seriesModel
.
get
(
'
coordinateSystem
'
)](
data
,
seriesModel
,
ecModel
);
var
dimensions
=
result
.
dimensions
;
var
categoryAxisModel
=
result
.
categoryAxisModel
;
var
list
=
new
List
(
result
.
dimensions
,
seriesModel
);
var
categoryDimIndex
=
dimensions
[
0
].
type
===
'
ordinal
'
?
0
:
(
dimensions
[
1
].
type
===
'
ordinal
'
?
1
:
-
1
);
var
list
=
new
List
(
dimensions
,
seriesModel
);
var
nameList
=
createNameList
(
result
,
data
);
list
.
initData
(
data
,
nameList
);
var
dimValueGetter
=
(
categoryAxisModel
&&
ifNeedCompleteOrdinalData
(
data
))
?
function
(
itemOpt
,
dimName
,
dataIndex
,
dimIndex
)
{
// Use dataIndex as ordinal value in categoryAxis
return
dimIndex
===
categoryDimIndex
?
dataIndex
:
+
getItemValue
(
itemOpt
);
}
:
function
(
itemOpt
,
dimName
,
dataIndex
,
dimIndex
)
{
var
val
=
getItemValue
(
itemOpt
);
return
val
&&
+
val
[
dimIndex
];
};
list
.
initData
(
data
,
nameList
,
dimValueGetter
);
return
list
;
}
...
...
@@ -35,45 +66,35 @@ define(function(require) {
cartesian2d
:
function
(
data
,
seriesModel
,
ecModel
)
{
var
dimensions
=
[];
var
categoryAxisModel
;
var
xAxisModel
=
ecModel
.
getComponent
(
'
xAxis
'
,
seriesModel
.
get
(
'
xAxisIndex
'
));
var
yAxisModel
=
ecModel
.
getComponent
(
'
yAxis
'
,
seriesModel
.
get
(
'
yAxisIndex
'
));
var
xAxisType
=
xAxisModel
.
get
(
'
type
'
);
var
yAxisType
=
yAxisModel
.
get
(
'
type
'
);
var
isYAxisCategory
=
yAxisType
===
'
category
'
;
if
(
xAxisType
===
'
category
'
)
{
dimensions
=
[{
name
:
'
x
'
,
type
:
'
ordinal
'
},
{
name
:
'
y
'
,
// If two category axes
type
:
isYAxisCategory
?
'
ordinal
'
:
'
float
'
,
stackable
:
isStackable
(
yAxisType
)
}];
categoryAxisModel
=
xAxisModel
;
}
else
if
(
isYAxisCategory
)
{
dimensions
=
[{
name
:
'
y
'
,
type
:
'
ordinal
'
},
{
name
:
'
x
'
,
stackable
:
isStackable
(
xAxisType
)
}];
categoryAxisModel
=
yAxisModel
;
}
var
isXAxisCategory
=
xAxisType
===
'
category
'
;
dimensions
=
[{
name
:
'
x
'
,
type
:
isXAxisCategory
?
'
ordinal
'
:
'
float
'
,
stackable
:
isStackable
(
xAxisType
)
},
{
name
:
'
y
'
,
// If two category axes
type
:
isYAxisCategory
?
'
ordinal
'
:
'
float
'
,
stackable
:
isStackable
(
yAxisType
)
}];
completeDimensions
(
dimensions
,
data
,
[
'
x
'
,
'
y
'
,
'
z
'
]);
return
{
dimensions
:
dimensions
,
categoryAxisModel
:
categoryAxisModel
};
return
{
dimensions
:
dimensions
,
categoryAxisModel
:
isXAxisCategory
?
xAxisModel
:
(
isYAxisCategory
?
yAxisModel
:
null
)
};
},
polar
:
function
(
data
,
seriesModel
,
ecModel
)
{
var
dimensions
=
[];
var
categoryAxisModel
;
var
polarIndex
=
seriesModel
.
get
(
'
polarIndex
'
)
||
0
;
var
axisFinder
=
function
(
axisModel
)
{
...
...
@@ -88,34 +109,24 @@ define(function(require) {
})[
0
];
var
isRadiusAxisCategory
=
radiusAxisModel
.
get
(
'
type
'
)
===
'
category
'
;
if
(
angleAxisModel
.
get
(
'
type
'
)
===
'
category
'
)
{
dimensions
=
[{
name
:
'
angle
'
,
type
:
'
ordinal
'
},
{
name
:
'
radius
'
,
// If two category axes
type
:
isRadiusAxisCategory
?
'
ordinal
'
:
'
float
'
,
stackable
:
isStackable
(
radiusAxisModel
.
get
(
'
type
'
))
}];
categoryAxisModel
=
angleAxisModel
;
}
else
if
(
isRadiusAxisCategory
)
{
dimensions
=
[{
name
:
'
radius
'
,
type
:
'
ordinal
'
},
{
name
:
'
angle
'
,
stackable
:
isStackable
(
angleAxisModel
.
get
(
'
type
'
))
}];
categoryAxisModel
=
radiusAxisModel
;
}
var
isAngleAxisCategory
=
angleAxisModel
.
get
(
'
type
'
)
===
'
category
'
;
var
dimensions
=
[{
name
:
'
radius
'
,
type
:
isRadiusAxisCategory
?
'
ordinal
'
:
'
float
'
,
stackable
:
isStackable
(
radiusAxisModel
.
get
(
'
type
'
))
},
{
name
:
'
angle
'
,
type
:
isAngleAxisCategory
?
'
ordinal
'
:
'
float
'
,
stackable
:
isStackable
(
angleAxisModel
.
get
(
'
type
'
))
}];
completeDimensions
(
dimensions
,
data
,
[
'
radius
'
,
'
angle
'
,
'
value
'
]);
return
{
dimensions
:
dimensions
,
categoryAxisModel
:
categoryAxisModel
};
return
{
dimensions
:
dimensions
,
categoryAxisModel
:
isAngleAxisCategory
?
angleAxisModel
:
(
isRadiusAxisCategory
?
radiusAxisModel
:
null
)
};
},
geo
:
function
(
data
,
seriesModel
,
ecModel
)
{
...
...
src/chart/helper/whiskerBoxCommon.js
浏览文件 @
b96cc6b3
...
...
@@ -2,11 +2,13 @@ define(function(require) {
'
use strict
'
;
var
zrUtil
=
require
(
'
zrender/core/util
'
);
var
List
=
require
(
'
../../data/List
'
);
var
completeDimensions
=
require
(
'
../../data/helper/completeDimensions
'
);
var
WhiskerBoxDraw
=
require
(
'
../helper/WhiskerBoxDraw
'
);
var
ChartView
=
require
(
'
../../view/Chart
'
);
function
getItemValue
(
item
)
{
return
item
.
value
==
null
?
item
:
item
.
value
;
}
var
seriesModelMixin
=
{
...
...
@@ -56,7 +58,10 @@ define(function(require) {
completeDimensions
(
dimensions
,
data
);
var
list
=
new
List
(
dimensions
,
this
);
list
.
initData
(
data
,
categories
?
categories
.
slice
()
:
null
,
null
,
addOrdinal
);
list
.
initData
(
data
,
categories
?
categories
.
slice
()
:
null
,
function
(
dataItem
,
dimName
,
idx
,
dimIdx
)
{
var
value
=
getItemValue
(
dataItem
);
return
addOrdinal
?
(
!
dimIdx
?
idx
:
value
[
dimIdx
-
1
])
:
value
[
dimIdx
];
});
return
list
;
},
...
...
src/chart/map/MapSeries.js
浏览文件 @
b96cc6b3
...
...
@@ -111,14 +111,13 @@ define(function (require) {
*/
formatTooltip
:
function
(
dataIndex
)
{
var
data
=
this
.
_data
;
var
formattedValue
=
addCommas
(
data
.
getRawValue
(
dataIndex
));
var
formattedValue
=
addCommas
(
this
.
getRawValue
(
dataIndex
));
var
name
=
data
.
getName
(
dataIndex
);
var
seriesGroup
=
this
.
seriesGroup
;
var
seriesNames
=
[];
for
(
var
i
=
0
;
i
<
seriesGroup
.
length
;
i
++
)
{
var
subData
=
seriesGroup
[
i
].
getData
();
if
(
!
isNaN
(
subData
.
getRawValue
(
dataIndex
)))
{
if
(
!
isNaN
(
seriesGroup
[
i
].
getRawValue
(
dataIndex
)))
{
seriesNames
.
push
(
encodeHTML
(
seriesGroup
[
i
].
name
)
);
...
...
src/chart/pie/PieView.js
浏览文件 @
b96cc6b3
...
...
@@ -99,7 +99,7 @@ define(function (require) {
var
isLabelInside
=
position
===
'
inside
'
||
position
===
'
inner
'
;
return
{
fill
:
textStyleModel
.
getTextColor
()
||
isLabelInside
?
'
#fff
'
:
data
.
getItemVisual
(
idx
,
'
color
'
),
||
(
isLabelInside
?
'
#fff
'
:
data
.
getItemVisual
(
idx
,
'
color
'
)
),
textFont
:
textStyleModel
.
getFont
(),
text
:
data
.
hostModel
.
getFormattedLabel
(
idx
,
state
)
||
data
.
getName
(
idx
)
...
...
src/chart/radar/RadarSeries.js
浏览文件 @
b96cc6b3
...
...
@@ -36,8 +36,8 @@ define(function(require) {
});
// FIXME
var
oldGetRawValue
=
data
.
getRawValue
;
data
.
getRawValue
=
function
(
idx
)
{
var
oldGetRawValue
=
this
.
getRawValue
;
this
.
getRawValue
=
function
(
idx
)
{
var
val
=
oldGetRawValue
.
call
(
this
,
idx
);
var
indicator
=
indicatorMap
[
data
.
getName
(
idx
)];
if
(
indicator
&&
indicator
.
max
!=
null
)
{
...
...
src/chart/treemap/TreemapSeries.js
浏览文件 @
b96cc6b3
...
...
@@ -143,7 +143,7 @@ define(function(require) {
*/
formatTooltip
:
function
(
dataIndex
)
{
var
data
=
this
.
getData
();
var
value
=
data
.
getRawValue
(
dataIndex
);
var
value
=
this
.
getRawValue
(
dataIndex
);
var
formattedValue
=
zrUtil
.
isArray
(
value
)
?
addCommas
(
value
[
0
])
:
addCommas
(
value
);
var
name
=
data
.
getName
(
dataIndex
);
...
...
@@ -170,7 +170,7 @@ define(function(require) {
treePathInfo
.
push
({
name
:
node
.
name
,
dataIndex
:
nodeDataIndex
,
value
:
data
.
getRawValue
(
nodeDataIndex
)
value
:
this
.
getRawValue
(
nodeDataIndex
)
});
node
=
node
.
parentNode
;
}
...
...
src/component/helper/MapDraw.js
浏览文件 @
b96cc6b3
...
...
@@ -115,6 +115,7 @@ define(function (require) {
var
dataIdx
;
// Use the itemStyle in data if has data
if
(
data
)
{
// FIXME If dataIdx < 0
dataIdx
=
data
.
indexOfName
(
region
.
name
);
var
itemModel
=
data
.
getItemModel
(
dataIdx
);
...
...
src/component/marker/MarkLineView.js
浏览文件 @
b96cc6b3
...
...
@@ -72,7 +72,7 @@ define(function (require) {
var
markLineFormatMixin
=
{
formatTooltip
:
function
(
dataIndex
)
{
var
data
=
this
.
_data
;
var
value
=
data
.
getRawValue
(
dataIndex
);
var
value
=
this
.
getRawValue
(
dataIndex
);
var
formattedValue
=
zrUtil
.
isArray
(
value
)
?
zrUtil
.
map
(
value
,
addCommas
).
join
(
'
,
'
)
:
addCommas
(
value
);
var
name
=
data
.
getName
(
dataIndex
);
...
...
@@ -80,6 +80,11 @@ define(function (require) {
+
((
name
?
encodeHTML
(
name
)
+
'
:
'
:
''
)
+
formattedValue
);
},
getRawValue
:
function
(
idx
)
{
var
option
=
this
.
_data
.
getItemModel
(
idx
).
option
;
return
zrUtil
.
retrieve
(
option
&&
option
.
__rawValue
,
option
&&
option
.
value
,
''
);
},
getRawDataArray
:
function
()
{
return
this
.
option
.
data
;
},
...
...
@@ -93,7 +98,7 @@ define(function (require) {
}
};
zrUtil
.
extend
(
markLineFormatMixin
,
modelUtil
.
dataFormatMixin
);
zrUtil
.
defaults
(
markLineFormatMixin
,
modelUtil
.
dataFormatMixin
);
require
(
'
../../echarts
'
).
extendComponentView
({
...
...
@@ -146,11 +151,6 @@ define(function (require) {
var
lineData
=
mlData
.
line
;
// Line data for tooltip and formatter
var
lineData
=
mlData
.
line
;
lineData
.
getRawValue
=
function
(
idx
)
{
var
option
=
this
.
getItemModel
(
idx
).
option
;
return
zrUtil
.
retrieve
(
option
&&
option
.
__rawValue
,
option
&&
option
.
value
,
''
);
};
zrUtil
.
extend
(
mlModel
,
markLineFormatMixin
);
mlModel
.
setData
(
lineData
);
...
...
src/component/marker/MarkPointView.js
浏览文件 @
b96cc6b3
...
...
@@ -20,7 +20,7 @@ define(function (require) {
formatTooltip
:
function
(
dataIndex
)
{
var
data
=
this
.
getData
();
var
value
=
data
.
getRawValue
(
dataIndex
);
var
value
=
this
.
getRawValue
(
dataIndex
);
var
formattedValue
=
zrUtil
.
isArray
(
value
)
?
zrUtil
.
map
(
value
,
addCommas
).
join
(
'
,
'
)
:
addCommas
(
value
);
var
name
=
data
.
getName
(
dataIndex
);
...
...
@@ -28,6 +28,11 @@ define(function (require) {
+
((
name
?
encodeHTML
(
name
)
+
'
:
'
:
''
)
+
formattedValue
);
},
getRawValue
:
function
(
idx
)
{
var
option
=
this
.
_data
.
getItemModel
(
idx
).
option
;
return
zrUtil
.
retrieve
(
option
.
__rawValue
,
option
.
value
,
''
);
},
getData
:
function
()
{
return
this
.
_data
;
},
...
...
@@ -37,7 +42,7 @@ define(function (require) {
}
};
zrUtil
.
extend
(
markPointFormatMixin
,
modelUtil
.
dataFormatMixin
);
zrUtil
.
defaults
(
markPointFormatMixin
,
modelUtil
.
dataFormatMixin
);
require
(
'
../../echarts
'
).
extendComponentView
({
...
...
@@ -80,13 +85,6 @@ define(function (require) {
var
mpData
=
createList
(
coordSys
,
seriesData
,
mpModel
);
var
dims
=
coordSys
&&
coordSys
.
dimensions
;
// Overwrite getRawValue
// FIXME
mpData
.
getRawValue
=
function
(
idx
)
{
var
option
=
this
.
getItemModel
(
idx
).
option
;
return
zrUtil
.
retrieve
(
option
.
__rawValue
,
option
.
value
,
''
);
};
// FIXME
zrUtil
.
mixin
(
mpModel
,
markPointFormatMixin
);
mpModel
.
setData
(
mpData
);
...
...
src/coord/axisHelper.js
浏览文件 @
b96cc6b3
...
...
@@ -84,8 +84,16 @@ define(function (require) {
*/
axisHelper
.
ifAxisCrossZero
=
function
(
axis
)
{
var
dataExtent
=
axis
.
scale
.
getExtent
();
var
min
=
Math
.
min
(
axis
.
model
.
get
(
'
min
'
),
dataExtent
[
0
],
dataExtent
[
1
]);
var
max
=
Math
.
max
(
axis
.
model
.
get
(
'
max
'
),
dataExtent
[
0
],
dataExtent
[
1
]);
var
min
=
dataExtent
[
0
];
var
max
=
dataExtent
[
1
];
var
optMin
=
axis
.
model
.
get
(
'
min
'
);
var
optMax
=
axis
.
model
.
get
(
'
max
'
);
if
(
!
isNaN
(
optMin
))
{
min
=
Math
.
min
(
optMin
,
min
);
}
if
(
!
isNaN
(
optMax
))
{
max
=
Math
.
max
(
optMax
,
max
);
}
return
!
((
min
>
0
&&
max
>
0
)
||
(
min
<
0
&&
max
<
0
))
||
axisHelper
.
ifAxisNeedsCrossZero
(
axis
);
};
...
...
src/coord/cartesian/Grid.js
浏览文件 @
b96cc6b3
...
...
@@ -212,31 +212,34 @@ define(function(require, factory) {
this
.
_updateCartesianFromSeries
(
ecModel
,
gridModel
);
function
ifAxisCanNotOnZero
(
otherAxisDim
)
{
var
axes
=
axesMap
[
otherAxisDim
];
return
(
axes
[
0
]
&&
(
axes
[
0
].
type
===
'
category
'
||
!
ifAxisCrossZero
(
axes
[
0
])))
||
(
axes
[
1
]
&&
(
axes
[
1
].
type
===
'
category
'
||
!
ifAxisCrossZero
(
axes
[
1
])));
}
// Fix configuration
each
(
axesMap
.
x
,
function
(
xAxis
)
{
each
(
axesMap
.
y
,
function
(
yAxis
)
{
// onZero can not be used in these two situations
// 1. When other axis is a category axis
// 2. When other axis not across 0 point
if
(
xAxis
.
type
===
'
category
'
||
!
ifAxisCrossZero
(
xAxis
)
)
{
yAxis
.
onZero
=
false
;
}
if
(
yAxis
.
type
===
'
category
'
||
!
ifAxisCrossZero
(
yAxis
)
)
{
xAxis
.
onZero
=
false
;
}
if
(
ifAxisNeedsCrossZero
(
yAxis
))
{
yAxis
.
scale
.
unionExtent
([
0
,
0
]);
}
if
(
ifAxisNeedsCrossZero
(
xAxis
))
{
xAxis
.
scale
.
unionExtent
([
0
,
0
]);
}
niceScaleExtent
(
yAxis
,
yAxis
.
model
);
niceScaleExtent
(
xAxis
,
xAxis
.
model
);
// onZero can not be enabled in these two situations
// 1. When any other axis is a category axis
// 2. When any other axis not across 0 point
if
(
ifAxisCanNotOnZero
(
'
y
'
))
{
xAxis
.
onZero
=
false
;
}
if
(
ifAxisNeedsCrossZero
(
xAxis
))
{
xAxis
.
scale
.
unionExtent
([
0
,
0
]);
}
niceScaleExtent
(
xAxis
,
xAxis
.
model
);
},
this
);
},
this
);
each
(
axesMap
.
y
,
function
(
yAxis
)
{
if
(
ifAxisCanNotOnZero
(
'
x
'
))
{
yAxis
.
onZero
=
false
;
}
if
(
ifAxisNeedsCrossZero
(
yAxis
))
{
yAxis
.
scale
.
unionExtent
([
0
,
0
]);
}
niceScaleExtent
(
yAxis
,
yAxis
.
model
);
},
this
);
function
createAxisCreator
(
axisType
)
{
...
...
src/data/Graph.js
浏览文件 @
b96cc6b3
...
...
@@ -81,11 +81,6 @@ define(function(require) {
graphProto
.
addNode
=
function
(
id
,
dataIndex
)
{
var
nodesMap
=
this
.
_nodesMap
;
// Assign dataIndex as id if not exists
if
(
id
==
null
)
{
id
=
dataIndex
;
}
if
(
nodesMap
[
id
])
{
return
;
}
...
...
src/data/List.js
浏览文件 @
b96cc6b3
...
...
@@ -26,11 +26,7 @@ define(function (require) {
var
isObject
=
zrUtil
.
isObject
;
var
IMMUTABLE_PROPERTIES
=
[
'
stackedOn
'
,
'
_nameList
'
,
'
_idList
'
,
'
_rawData
'
,
'
_valueProp
'
,
'
_optionModels
'
,
// Get raw value may be wrapped by creator
// FIXME
'
getRawValue
'
'
stackedOn
'
,
'
_nameList
'
,
'
_idList
'
,
'
_rawData
'
];
var
transferImmuProperties
=
function
(
a
,
b
)
{
...
...
@@ -157,15 +153,10 @@ define(function (require) {
this
.
_graphicEls
=
[];
/**
* Raw data
* @private
*/
this
.
_rawData
=
[];
/**
* @type {Array.<Array|Object>}
* @private
*/
this
.
_
valueProp
;
this
.
_
rawData
;
};
var
listProto
=
List
.
prototype
;
...
...
@@ -198,19 +189,14 @@ define(function (require) {
* Initialize from data
* @param {Array.<Object|number|Array>} data
* @param {Array.<string>} [nameList]
* @param {string} [valueProp='value']
* @param {boolean} [addOrdinal=false]
* @param {Function} [dimValueGetter] (dataItem, dimName, dataIndex, dimIndex) => number
*/
listProto
.
initData
=
function
(
data
,
nameList
,
valueProp
,
addOrdinal
)
{
listProto
.
initData
=
function
(
data
,
nameList
,
dimValueGetter
)
{
data
=
data
||
[];
valueProp
=
valueProp
||
'
value
'
;
this
.
_rawData
=
data
;
this
.
_valueProp
=
valueProp
;
// Clear
var
optionModels
=
this
.
_optionModels
=
[];
var
storage
=
this
.
_storage
=
{};
var
indices
=
this
.
indices
=
[];
...
...
@@ -230,92 +216,44 @@ define(function (require) {
storage
[
dimensions
[
i
]]
=
new
DataCtor
(
size
);
}
// Special storage of indices of option model
// It is used for indexing the model in List#_optionModels
var
optionModelIndices
=
storage
.
$optionModelIndices
=
new
Int32Array
(
size
);
var
tempValue
=
[];
var
rawValueTo1D
=
false
;
var
value1D
=
dimensions
.
length
===
1
;
// Default dim value getter
dimValueGetter
=
dimValueGetter
||
function
(
dataItem
,
dimName
,
dataIndex
,
dimIndex
)
{
var
value
=
(
zrUtil
.
isObject
(
dataItem
)
&&
!
zrUtil
.
isArray
(
dataItem
))
?
dataItem
.
value
:
dataItem
;
if
(
zrUtil
.
isArray
(
value
))
{
return
value
[
dimIndex
];
}
// If value is a single number or something else not array.
return
value
;
};
// Use the first data to indicate data type;
var
isValueArray
=
data
[
0
]
!=
null
&&
zrUtil
.
isArray
(
data
[
0
][
valueProp
]
==
null
?
data
[
0
]
:
data
[
0
][
valueProp
]
);
for
(
var
idx
=
0
;
idx
<
data
.
length
;
idx
++
)
{
var
value
=
data
[
idx
];
// Each data item is an option contains value or other properties
// {
// value:
// itemStyle:
// }
if
(
data
[
idx
]
!=
null
&&
(
typeof
data
[
idx
]
===
'
object
'
)
&&
!
zrUtil
.
isArray
(
data
[
idx
]))
{
value
=
data
[
idx
][
valueProp
];
var
model
=
new
Model
(
data
[
idx
],
this
.
hostModel
,
this
.
hostModel
.
ecModel
);
var
modelIdx
=
optionModels
.
length
;
optionModelIndices
[
idx
]
=
modelIdx
;
optionModels
.
push
(
model
);
}
var
dataItem
=
data
[
idx
];
// Each data item is value
// [1, 2]
// 2
else
{
// Reference to the undefined
optionModelIndices
[
idx
]
=
-
1
;
}
// Bar chart, line chart which uses category axis
// only gives the 'y' value. 'x' value is the indices of cateogry
// Use a tempValue to normalize the value to be a (x, y) value
if
(
!
isValueArray
)
{
if
(
!
value1D
)
{
tempValue
[
0
]
=
idx
;
tempValue
[
1
]
=
value
;
value
=
tempValue
;
rawValueTo1D
=
true
;
}
// Pie chart is 1D
else
{
tempValue
[
0
]
=
value
;
value
=
tempValue
;
}
}
// Store the data by dimensions
for
(
var
k
=
0
;
k
<
dimensions
.
length
;
k
++
)
{
var
dim
=
dimensions
[
k
];
var
dimInfo
=
dimensionInfoMap
[
dim
];
var
dimStorage
=
storage
[
dim
];
var
dimValue
=
addOrdinal
?
(
!
k
?
idx
:
value
[
k
-
1
])
:
value
[
k
];
// PENDING NULL is empty or zero
switch
(
dimInfo
.
type
)
{
case
'
float
'
:
case
'
number
'
:
dimValue
=
+
dimValue
;
break
;
case
'
int
'
:
dimValue
=
dimValue
|
0
;
break
;
}
dimStorage
[
idx
]
=
dimValue
;
dimStorage
[
idx
]
=
dimValueGetter
(
dataItem
,
dim
,
idx
,
k
);
}
indices
.
push
(
idx
);
}
// Use the name in option and create id
for
(
var
i
=
0
;
i
<
optionModelIndices
.
length
;
i
++
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
var
id
=
''
;
if
(
!
nameList
[
i
])
{
var
modelIdx
=
optionModelIndices
[
i
];
var
model
=
optionModels
[
modelIdx
];
if
(
model
&&
model
.
option
)
{
nameList
[
i
]
=
model
.
option
.
name
;
// Try using the id in option
id
=
model
.
option
.
id
;
}
nameList
[
i
]
=
data
[
i
].
name
;
// Try using the id in option
id
=
data
[
i
].
id
;
}
var
name
=
nameList
[
i
]
||
''
;
if
(
!
id
&&
name
)
{
...
...
@@ -470,24 +408,6 @@ define(function (require) {
}
return
sum
;
};
/**
* Get raw value
* @param {number} idx
* @return {number}
*/
listProto
.
getRawValue
=
function
(
idx
)
{
idx
=
this
.
getRawIndex
(
idx
);
var
itemOpt
=
this
.
_rawData
[
idx
];
var
valueProp
=
this
.
_valueProp
;
// FIXME Value may not exist in data item object when data is links
// if (itemOpt && itemOpt.hasOwnProperty(valueProp)) {
// return itemOpt[valueProp];
// }
if
(
zrUtil
.
isObject
(
itemOpt
)
&&
!
zrUtil
.
isArray
(
itemOpt
))
{
return
itemOpt
[
valueProp
];
}
return
itemOpt
;
};
/**
* Retreive the index with given value
...
...
@@ -769,8 +689,6 @@ define(function (require) {
}
}
storage
.
$optionModelIndices
=
thisStorage
.
$optionModelIndices
;
var
tmpRetValue
=
[];
this
.
each
(
dimensions
,
function
()
{
var
idx
=
arguments
[
arguments
.
length
-
1
];
...
...
@@ -796,6 +714,11 @@ define(function (require) {
};
var
temporaryModel
=
new
Model
(
null
);
// Since temporate model is shared by all data items. So we must make sure it can't be write.
// PENDING may cause any performance problem?
// if (Object.freeze) {
// Object.freeze(temporaryModel);
// }
/**
* Get model of one data item.
* It will create a temporary model if value on idx is not an option.
...
...
@@ -805,24 +728,20 @@ define(function (require) {
*/
// FIXME Model proxy ?
listProto
.
getItemModel
=
function
(
idx
,
createNew
)
{
var
storage
=
this
.
_storage
;
var
optionModelIndices
=
storage
.
$optionModelIndices
;
var
modelIndex
=
optionModelIndices
&&
optionModelIndices
[
this
.
indices
[
idx
]];
var
model
=
this
.
_optionModels
[
modelIndex
];
var
model
;
var
hostModel
=
this
.
hostModel
;
if
(
!
model
)
{
// Use a temporary model proxy if value on idx is not an option.
// FIXME Create a new one may cause memory leak
if
(
createNew
)
{
model
=
new
Model
(
null
,
hostModel
);
}
else
{
model
=
temporaryModel
;
model
.
parentModel
=
hostModel
;
model
.
ecModel
=
hostModel
.
ecModel
;
}
idx
=
this
.
indices
[
idx
];
// Use a temporary model proxy
// FIXME Create a new one may cause memory leak
if
(
createNew
)
{
model
=
new
Model
(
null
,
hostModel
);
}
else
{
model
=
temporaryModel
;
// FIXME If return null when idx not exists
model
.
option
=
this
.
_rawData
[
idx
];
model
.
parentModel
=
hostModel
;
model
.
ecModel
=
hostModel
.
ecModel
;
}
return
model
;
};
...
...
src/echarts.js
浏览文件 @
b96cc6b3
...
...
@@ -386,8 +386,11 @@ define(function (require) {
name
=
'
default
'
;
}
var
el
=
defaultLoadingEffect
(
this
.
_api
,
cfg
);
var
zr
=
this
.
_zr
;
this
.
_loadingFX
=
el
;
this
.
_zr
.
add
(
el
);
zr
.
painter
.
clear
();
zr
.
add
(
el
);
};
/**
...
...
src/model/Series.js
浏览文件 @
b96cc6b3
...
...
@@ -145,7 +145,7 @@ define(function(require) {
*/
formatTooltip
:
function
(
dataIndex
,
mutipleSeries
)
{
var
data
=
this
.
_data
;
var
value
=
data
.
getRawValue
(
dataIndex
);
var
value
=
this
.
getRawValue
(
dataIndex
);
var
formattedValue
=
zrUtil
.
isArray
(
value
)
?
zrUtil
.
map
(
value
,
addCommas
).
join
(
'
,
'
)
:
addCommas
(
value
);
var
name
=
data
.
getName
(
dataIndex
);
...
...
src/util/model.js
浏览文件 @
b96cc6b3
...
...
@@ -209,8 +209,8 @@ define(function(require) {
var
seriesIndex
=
this
.
seriesIndex
;
var
seriesName
=
this
.
name
;
var
rawValue
=
this
.
getRawValue
(
dataIndex
);
var
rawDataIndex
=
data
.
getRawIndex
(
dataIndex
);
var
rawValue
=
data
.
getRawValue
(
dataIndex
);
var
name
=
data
.
getName
(
dataIndex
,
true
);
// Data may not exists in the option given by user
...
...
@@ -254,6 +254,20 @@ define(function(require) {
else
if
(
typeof
formatter
===
'
string
'
)
{
return
formatUtil
.
formatTpl
(
formatter
,
params
);
}
},
/**
* Get raw value in option
* @param {number} idx
* @return {Object}
*/
getRawValue
:
function
(
idx
)
{
var
itemModel
=
this
.
getData
().
getItemModel
(
idx
);
if
(
itemModel
&&
itemModel
.
option
)
{
var
dataItem
=
itemModel
.
option
;
return
(
zrUtil
.
isObject
(
dataItem
)
&&
!
zrUtil
.
isArray
(
dataItem
))
?
dataItem
.
value
:
dataItem
;
}
}
};
...
...
src/util/symbol.js
浏览文件 @
b96cc6b3
...
...
@@ -134,6 +134,7 @@ define(function(require) {
ctx
.
lineTo
(
x
,
y
+
height
/
4
*
3
);
ctx
.
lineTo
(
x
-
dx
,
y
+
height
);
ctx
.
lineTo
(
x
,
y
);
ctx
.
closePath
();
}
});
...
...
src/visual/symbol.js
浏览文件 @
b96cc6b3
...
...
@@ -23,7 +23,7 @@ define(function (require) {
if
(
!
ecModel
.
isSeriesFiltered
(
seriesModel
))
{
if
(
typeof
symbolSize
===
'
function
'
)
{
data
.
each
(
function
(
idx
)
{
var
rawValue
=
data
.
getRawValue
(
idx
);
var
rawValue
=
seriesModel
.
getRawValue
(
idx
);
// FIXME
var
params
=
seriesModel
.
getDataParams
(
idx
);
data
.
setItemVisual
(
idx
,
'
symbolSize
'
,
symbolSize
(
rawValue
,
params
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录