Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
半栈学徒
incubator-echarts
提交
8efc8703
I
incubator-echarts
项目概览
半栈学徒
/
incubator-echarts
与 Fork 源项目一致
从无法访问的项目Fork
通知
5
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,发现更多精彩内容 >>
提交
8efc8703
编写于
3月 04, 2016
作者:
P
pah100
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
https://github.com/ecomfe/echarts
上级
340794c3
3abfc3fc
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
55 addition
and
41 deletion
+55
-41
src/model/Component.js
src/model/Component.js
+3
-0
src/model/Global.js
src/model/Global.js
+4
-0
src/scale/Interval.js
src/scale/Interval.js
+13
-27
src/scale/Time.js
src/scale/Time.js
+7
-14
src/util/number.js
src/util/number.js
+28
-0
未找到文件。
src/model/Component.js
浏览文件 @
8efc8703
...
...
@@ -114,6 +114,9 @@ define(function(require) {
}
},
// Hooker after init or mergeOption
optionUpdated
:
function
(
ecModel
)
{},
getDefaultOption
:
function
()
{
if
(
!
this
.
hasOwnProperty
(
'
__defaultOption
'
))
{
var
optList
=
[];
...
...
src/model/Global.js
浏览文件 @
8efc8703
...
...
@@ -166,6 +166,7 @@ define(function (require) {
// ComponentModel.getAllClassMainTypes.
if
(
!
newCptOption
)
{
componentModel
.
mergeOption
({},
this
);
componentModel
.
optionUpdated
(
this
);
}
else
{
var
ComponentModelClass
=
ComponentModel
.
getClass
(
...
...
@@ -174,6 +175,7 @@ define(function (require) {
if
(
componentModel
&&
componentModel
instanceof
ComponentModelClass
)
{
componentModel
.
mergeOption
(
newCptOption
,
this
);
componentModel
.
optionUpdated
(
this
);
}
else
{
// PENDING Global as parent ?
...
...
@@ -187,6 +189,8 @@ define(function (require) {
resultItem
.
keyInfo
)
);
// Call optionUpdated after init
componentModel
.
optionUpdated
(
this
);
}
}
...
...
src/scale/Interval.js
浏览文件 @
8efc8703
...
...
@@ -118,51 +118,37 @@ define(function (require) {
/**
* Update interval and extent of intervals for nice ticks
*
Algorithm from d3.js
* @param {number} [
approxTickNum = 10] Given approx tick number
*
* @param {number} [
splitNumber = 5] Desired number of ticks
*/
niceTicks
:
function
(
approxTickNum
)
{
approxTickNum
=
approxTickNum
||
10
;
niceTicks
:
function
(
splitNumber
)
{
splitNumber
=
splitNumber
||
5
;
var
extent
=
this
.
_extent
;
var
span
=
extent
[
1
]
-
extent
[
0
];
if
(
span
===
Infinity
||
span
<=
0
)
{
return
;
}
// Figure out step quantity, for example 0.1, 1, 10, 100
var
interval
=
Math
.
pow
(
10
,
Math
.
floor
(
Math
.
log
(
span
/
approxTickNum
)
/
Math
.
LN10
));
var
err
=
approxTickNum
/
span
*
interval
;
// Filter ticks to get closer to the desired count.
if
(
err
<=
0.15
)
{
interval
*=
10
;
}
else
if
(
err
<=
0.3
)
{
interval
*=
5
;
}
else
if
(
err
<=
0.45
)
{
interval
*=
3
;
}
else
if
(
err
<=
0.75
)
{
interval
*=
2
;
}
// From "Nice Numbers for Graph Labels" of Graphic Gems
// var niceSpan = numberUtil.nice(span, false);
var
step
=
numberUtil
.
nice
(
span
/
splitNumber
,
true
);
var
niceExtent
=
[
numberUtil
.
round
(
mathCeil
(
extent
[
0
]
/
interval
)
*
interval
),
numberUtil
.
round
(
mathFloor
(
extent
[
1
]
/
interval
)
*
interval
)
numberUtil
.
round
(
Math
.
floor
(
extent
[
0
]
/
step
)
*
step
),
numberUtil
.
round
(
Math
.
ceil
(
extent
[
1
]
/
step
)
*
step
)
];
this
.
_interval
=
interval
;
this
.
_interval
=
step
;
this
.
_niceExtent
=
niceExtent
;
},
/**
* Nice extent.
* @param {number} [
approxTickNum = 10
] Given approx tick number
* @param {number} [
splitNumber = 5
] Given approx tick number
* @param {boolean} [fixMin=false]
* @param {boolean} [fixMax=false]
*/
niceExtent
:
function
(
approxTickNum
,
fixMin
,
fixMax
)
{
niceExtent
:
function
(
splitNumber
,
fixMin
,
fixMax
)
{
var
extent
=
this
.
_extent
;
// If extent start and end are same, expand them
if
(
extent
[
0
]
===
extent
[
1
])
{
...
...
@@ -182,7 +168,7 @@ define(function (require) {
extent
[
1
]
=
1
;
}
this
.
niceTicks
(
approxTickNum
,
fixMin
,
fixMax
);
this
.
niceTicks
(
splitNumber
);
// var extent = this._extent;
var
interval
=
this
.
_interval
;
...
...
src/scale/Time.js
浏览文件 @
8efc8703
...
...
@@ -90,20 +90,13 @@ define(function (require) {
var
interval
=
level
[
2
];
// Same with interval scale if span is much larger than 1 year
if
(
level
[
0
]
===
'
year
'
)
{
var
year
=
span
/
interval
;
var
yearInterval
=
Math
.
pow
(
10
,
Math
.
floor
(
Math
.
log
(
year
/
approxTickNum
)
/
Math
.
LN10
));
var
err
=
approxTickNum
/
year
*
yearInterval
;
// Filter ticks to get closer to the desired count.
if
(
err
<=
0.15
)
{
yearInterval
*=
10
;
}
else
if
(
err
<=
0.3
)
{
yearInterval
*=
5
;
}
else
if
(
err
<=
0.75
)
{
yearInterval
*=
2
;
}
interval
*=
yearInterval
;
var
yearSpan
=
span
/
interval
;
// From "Nice Numbers for Graph Labels" of Graphic Gems
var
niceYearSpan
=
numberUtil
.
nice
(
yearSpan
,
false
);
var
yearStep
=
numberUtil
.
nice
(
niceYearSpan
/
approxTickNum
,
true
);
interval
*=
yearStep
;
}
var
niceExtent
=
[
...
...
src/util/number.js
浏览文件 @
8efc8703
...
...
@@ -161,5 +161,33 @@ define(function (require) {
);
};
// "Nice Numbers for Graph Labels" of Graphic Gems
/**
* find a “nice” number approximately equal to x. Round the number if round = true, take ceiling if round = false
* The primary observation is that the “nicest” numbers in decimal are 1, 2, and 5, and all power-of-ten multiples of these numbers.
* @param {number} val
* @param {boolean} round
* @return {number}
*/
number
.
nice
=
function
(
val
,
round
)
{
var
exp
=
Math
.
floor
(
Math
.
log
(
val
)
/
Math
.
LN10
);
var
exp10
=
Math
.
pow
(
10
,
exp
);
var
f
=
val
/
exp10
;
// between 1 and 10
var
nf
;
if
(
round
)
{
if
(
f
<
1.5
)
{
nf
=
1
;
}
else
if
(
f
<
3
)
{
nf
=
2
;
}
else
if
(
f
<
7
)
{
nf
=
5
;
}
else
{
nf
=
10
;
}
}
else
{
if
(
f
<
1
)
{
nf
=
1
;
}
else
if
(
f
<
2
)
{
nf
=
2
;
}
else
if
(
f
<
5
)
{
nf
=
5
;
}
else
{
nf
=
10
;
}
}
return
nf
*
exp10
;
};
return
number
;
});
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录