Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Five-菜鸟级
echarts
提交
ebadaf70
E
echarts
项目概览
Five-菜鸟级
/
echarts
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
echarts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ebadaf70
编写于
8月 27, 2018
作者:
O
Ovilia
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(polar): fix polar axis category interval #8791
上级
75c02aab
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
70 addition
and
2 deletion
+70
-2
src/coord/axisTickLabelBuilder.js
src/coord/axisTickLabelBuilder.js
+0
-1
src/coord/polar/AngleAxis.js
src/coord/polar/AngleAxis.js
+70
-1
未找到文件。
src/coord/axisTickLabelBuilder.js
浏览文件 @
ebadaf70
...
...
@@ -217,7 +217,6 @@ export function calculateCategoryInterval(axis) {
var
width
=
0
;
var
height
=
0
;
// Polar is also calculated in assumptive linear layout here.
// Not precise, do not consider align and vertical align
// and each distance from axis line yet.
var
rect
=
textContain
.
getBoundingRect
(
...
...
src/coord/polar/AngleAxis.js
浏览文件 @
ebadaf70
...
...
@@ -18,7 +18,11 @@
*/
import
*
as
zrUtil
from
'
zrender/src/core/util
'
;
import
*
as
textContain
from
'
zrender/src/contain/text
'
;
import
Axis
from
'
../Axis
'
;
import
{
makeInner
}
from
'
../../util/model
'
;
var
inner
=
makeInner
();
function
AngleAxis
(
scale
,
angleExtent
)
{
...
...
@@ -50,7 +54,72 @@ AngleAxis.prototype = {
dataToAngle
:
Axis
.
prototype
.
dataToCoord
,
angleToData
:
Axis
.
prototype
.
coordToData
angleToData
:
Axis
.
prototype
.
coordToData
,
/**
* Only be called in category axis.
* Angle axis uses text height to decide interval
*
* @override
* @return {number} Auto interval for cateogry axis tick and label
*/
calculateCategoryInterval
:
function
()
{
var
axis
=
this
;
var
labelModel
=
axis
.
getLabelModel
();
var
ordinalScale
=
axis
.
scale
;
var
ordinalExtent
=
ordinalScale
.
getExtent
();
// Providing this method is for optimization:
// avoid generating a long array by `getTicks`
// in large category data case.
var
tickCount
=
ordinalScale
.
count
();
if
(
ordinalExtent
[
1
]
-
ordinalExtent
[
0
]
<
1
)
{
return
0
;
}
var
tickValue
=
ordinalExtent
[
0
];
var
unitSpan
=
axis
.
dataToCoord
(
tickValue
+
1
)
-
axis
.
dataToCoord
(
tickValue
);
var
unitH
=
Math
.
abs
(
unitSpan
);
// Not precise, just use height as text width
// and each distance from axis line yet.
var
rect
=
textContain
.
getBoundingRect
(
tickValue
,
labelModel
.
getFont
(),
'
center
'
,
'
top
'
);
var
maxH
=
Math
.
max
(
rect
.
height
,
7
);
var
dh
=
maxH
/
unitH
;
// 0/0 is NaN, 1/0 is Infinity.
isNaN
(
dh
)
&&
(
dh
=
Infinity
);
var
interval
=
Math
.
max
(
0
,
Math
.
floor
(
dh
));
var
cache
=
inner
(
axis
.
model
);
var
lastAutoInterval
=
cache
.
lastAutoInterval
;
var
lastTickCount
=
cache
.
lastTickCount
;
// Use cache to keep interval stable while moving zoom window,
// otherwise the calculated interval might jitter when the zoom
// window size is close to the interval-changing size.
if
(
lastAutoInterval
!=
null
&&
lastTickCount
!=
null
&&
Math
.
abs
(
lastAutoInterval
-
interval
)
<=
1
&&
Math
.
abs
(
lastTickCount
-
tickCount
)
<=
1
// Always choose the bigger one, otherwise the critical
// point is not the same when zooming in or zooming out.
&&
lastAutoInterval
>
interval
)
{
interval
=
lastAutoInterval
;
}
// Only update cache if cache not used, otherwise the
// changing of interval is too insensitive.
else
{
cache
.
lastTickCount
=
tickCount
;
cache
.
lastAutoInterval
=
interval
;
}
return
interval
;
}
};
zrUtil
.
inherits
(
AngleAxis
,
Axis
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录