You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by sh...@apache.org on 2020/06/22 06:45:18 UTC
[incubator-echarts] branch label-enhancement updated:
enhance(labelLine): optimize smooth in labelLine
This is an automated email from the ASF dual-hosted git repository.
shenyi pushed a commit to branch label-enhancement
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git
The following commit(s) were added to refs/heads/label-enhancement by this push:
new f1dd46d enhance(labelLine): optimize smooth in labelLine
f1dd46d is described below
commit f1dd46d531afc1475de4c3b2f42f30d80b32a2a9
Author: pissang <bm...@gmail.com>
AuthorDate: Mon Jun 22 14:44:55 2020 +0800
enhance(labelLine): optimize smooth in labelLine
---
src/chart/helper/Symbol.ts | 1 -
src/chart/pie/labelLayout.ts | 14 +-
src/label/labelGuideHelper.ts | 35 +-
src/util/types.ts | 2 +-
test/pie-label-extreme.html | 721 ++++++++++++++++++++++++++++++++++++++++++
5 files changed, 766 insertions(+), 7 deletions(-)
diff --git a/src/chart/helper/Symbol.ts b/src/chart/helper/Symbol.ts
index b67240a..8689d63 100644
--- a/src/chart/helper/Symbol.ts
+++ b/src/chart/helper/Symbol.ts
@@ -231,7 +231,6 @@ class Symbol extends graphic.Group {
cursorStyle && symbolPath.attr('cursor', cursorStyle);
- // PENDING setColor before setStyle!!!
const symbolStyle = data.getItemVisual(idx, 'style');
const visualColor = symbolStyle.fill;
if (symbolPath.__isEmptyBrush) {
diff --git a/src/chart/pie/labelLayout.ts b/src/chart/pie/labelLayout.ts
index 470119a..3458873 100644
--- a/src/chart/pie/labelLayout.ts
+++ b/src/chart/pie/labelLayout.ts
@@ -22,7 +22,7 @@ import {parsePercent} from '../../util/number';
import PieSeriesModel, { PieSeriesOption, PieDataItemOption } from './PieSeries';
import { VectorArray } from 'zrender/src/core/vector';
import { HorizontalAlign, ZRTextAlign } from '../../util/types';
-import { Sector, Polyline } from '../../util/graphic';
+import { Sector, Polyline, Point } from '../../util/graphic';
import ZRText from 'zrender/src/graphic/Text';
import BoundingRect, {RectLike} from 'zrender/src/core/BoundingRect';
import { each } from 'zrender/src/core/util';
@@ -413,13 +413,19 @@ export default function (
}
}
if (labelLine) {
- if (notShowLabel || !layout.linePoints) {
+ const linePoints = layout.linePoints;
+ if (notShowLabel || !linePoints) {
each(labelLine.states, setNotShow);
labelLine.ignore = true;
}
else {
- limitTurnAngle(layout.linePoints, layout.minTurnAngle);
- labelLine.setShape({ points: layout.linePoints });
+ limitTurnAngle(linePoints, layout.minTurnAngle);
+ labelLine.setShape({ points: linePoints });
+
+ // Set the anchor to the midpoint of sector
+ label.__hostTarget.textGuideLineConfig = {
+ anchor: new Point(linePoints[0][0], linePoints[0][1])
+ };
}
}
}
diff --git a/src/label/labelGuideHelper.ts b/src/label/labelGuideHelper.ts
index 3ea413f..0d872e0 100644
--- a/src/label/labelGuideHelper.ts
+++ b/src/label/labelGuideHelper.ts
@@ -31,6 +31,7 @@ import { defaults, retrieve2 } from 'zrender/src/core/util';
import { LabelLineOption } from '../util/types';
import Model from '../model/Model';
import { invert } from 'zrender/src/core/matrix';
+import * as vector from 'zrender/src/core/vector';
const PI2 = Math.PI * 2;
const CMD = PathProxy.CMD;
@@ -470,7 +471,7 @@ function setLabelLineState(
// Set smooth
let smooth = stateModel.get('smooth');
if (smooth && smooth === true) {
- smooth = 0.4;
+ smooth = 0.3;
}
stateObj.shape = stateObj.shape || {};
(stateObj.shape as Polyline['shape']).smooth = smooth as number;
@@ -478,6 +479,35 @@ function setLabelLineState(
const styleObj = stateModel.getModel('lineStyle').getLineStyle();
isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;
}
+
+function buildLabelLinePath(path: CanvasRenderingContext2D, shape: Polyline['shape']) {
+ const smooth = shape.smooth as number;
+ const points = shape.points;
+ path.moveTo(points[0][0], points[0][1]);
+ if (smooth > 0) {
+ const len1 = vector.dist(points[0], points[1]);
+ const len2 = vector.dist(points[1], points[2]);
+ if (!len1 || !len2) {
+ path.lineTo(points[1][0], points[1][1]);
+ path.lineTo(points[2][0], points[2][1]);
+ return;
+ }
+
+ const moveLen = Math.min(len1, len2) * smooth;
+
+ const midPoint0 = vector.lerp([], points[1], points[0], moveLen / len1);
+ const midPoint2 = vector.lerp([], points[1], points[2], moveLen / len2);
+
+ const midPoint1 = vector.lerp([], midPoint0, midPoint2, 0.5);
+ path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);
+ path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);
+ }
+ else {
+ path.lineTo(points[1][0], points[1][1]);
+ path.lineTo(points[2][0], points[2][1]);
+ }
+}
+
/**
* Create a label line if necessary and set it's style.
*/
@@ -538,5 +568,8 @@ export function setLabelLineStyle(
defaults(labelLine.style, defaultStyle);
// Not fill.
labelLine.style.fill = null;
+
+ // Custom the buildPath.
+ labelLine.buildPath = buildLabelLinePath;
}
}
diff --git a/src/util/types.ts b/src/util/types.ts
index 94cf6d4..e4f508e 100644
--- a/src/util/types.ts
+++ b/src/util/types.ts
@@ -1153,7 +1153,7 @@ export interface SeriesOption extends
labelLine?: LabelLineOption
/**
- * Global label layout option in label layout stage.
+ * Overall label layout option in label layout stage.
*/
labelLayout?: LabelLayoutOption | LabelLayoutOptionCallback
diff --git a/test/pie-label-extreme.html b/test/pie-label-extreme.html
new file mode 100644
index 0000000..1fcee55
--- /dev/null
+++ b/test/pie-label-extreme.html
@@ -0,0 +1,721 @@
+<!DOCTYPE html>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <script src="lib/esl.js"></script>
+ <script src="lib/config.js"></script>
+ <script src="lib/jquery.min.js"></script>
+ <script src="lib/facePrint.js"></script>
+ <script src="lib/testHelper.js"></script>
+ <script src="lib/dat.gui.min.js"></script>
+ <link rel="stylesheet" href="lib/reset.css" />
+ </head>
+ <body>
+ <style>
+ html, body {
+ height: 100%;
+ }
+ #main0 {
+ width: 100%;
+ height: 100%;
+ }
+ </style>
+
+
+
+ <div id="main0"></div>
+
+
+
+ <script>
+ require(['echarts'/*, 'map/js/china' */], function (echarts) {
+ option = {
+ "backgroundColor": "transparent",
+ "color": ["#4F7FF2", "#7BC417", "#F58923", "#FEE222", "#FF6060", "#4FC9F2", "#79E9B1", "#FDB805", "#48AAFF", "#11AF03"],
+ "title": {
+ "show": false
+ },
+ "tooltip": {
+ "formatter": "{b}<br/>{a}: {c} -- {d}%"
+ },
+ "maxRadius": "60",
+ "minRadius": "40",
+ "center": "middle",
+ "series": [{
+ "type": "pie",
+ "top": 10,
+ "bottom": 10,
+ "center": ["50%", "50%"],
+ "radius": ["30%", "71%"],
+ "label": {
+ "show": true,
+ "color": "#000",
+ "fontSize": 10
+ },
+ "labelLine": {
+ "smooth": true
+ },
+ "data": [{
+ "name": "七台河市易通汽车销售有限公司",
+ "value": "143"
+ }, {
+ "name": "上海丞乐网络科技有限公司",
+ "value": "60"
+ }, {
+ "name": "上海保橙网络科技有限公司OK车险",
+ "value": "694"
+ }, {
+ "name": "上海华驭商务咨询服务部",
+ "value": "573"
+ }, {
+ "name": "上海同鑫信息技术咨询有限公司",
+ "value": "62"
+ }, {
+ "name": "上海庭海农业专业合作社",
+ "value": "17"
+ }, {
+ "name": "上海欣璐网络科技服务有限公司",
+ "value": "82"
+ }, {
+ "name": "上海灿谷投资管理咨询服务有限公司",
+ "value": "16"
+ }, {
+ "name": "上海谷途网络科技有限公司",
+ "value": "1254"
+ }, {
+ "name": "东方启辰信息技术深圳股份有限公司",
+ "value": "435"
+ }, {
+ "name": "东莞市嘉庆汽车信息咨询有限公司",
+ "value": "41"
+ }, {
+ "name": "东莞市天霸电子科技有限公司",
+ "value": "110"
+ }, {
+ "name": "东莞市轩净汽车服务有限公司",
+ "value": "67"
+ }, {
+ "name": "东营五色土商务信息咨询有限公司",
+ "value": "1216"
+ }, {
+ "name": "中民APP",
+ "value": "1982"
+ }, {
+ "name": "乐山耀发企业管理咨询有限公司",
+ "value": "2"
+ }, {
+ "name": "乐陵市乐诚信息咨询有限公司",
+ "value": "118"
+ }, {
+ "name": "云保网",
+ "value": "1"
+ }, {
+ "name": "云达天津国际贸易有限公司",
+ "value": "307"
+ }, {
+ "name": "众友帮",
+ "value": "138"
+ }, {
+ "name": "佰仟租赁",
+ "value": "2766"
+ }, {
+ "name": "保尔保险全省",
+ "value": "2063"
+ }, {
+ "name": "元征APP",
+ "value": "74"
+ }, {
+ "name": "其他免费搜索",
+ "value": "9"
+ }, {
+ "name": "北京一路魔方科技有限公司",
+ "value": "126"
+ }, {
+ "name": "北京京付通支付技术有限公司",
+ "value": "4"
+ }, {
+ "name": "北京日盛昌科技有限公司",
+ "value": "20"
+ }, {
+ "name": "北京智驾出行科技有限公司",
+ "value": "63"
+ }, {
+ "name": "北京欣圣宏源科贸发展有限公司",
+ "value": "1"
+ }, {
+ "name": "北京泰迪熊移动科技有限公司",
+ "value": "1895"
+ }, {
+ "name": "北京联华思创科技有限公司",
+ "value": "54"
+ }, {
+ "name": "北京融智联航科技发展有限公司",
+ "value": "21"
+ }, {
+ "name": "北京阿方提科技有限公司",
+ "value": "53"
+ }, {
+ "name": "北京霏凡网络科技有限公司",
+ "value": "15"
+ }, {
+ "name": "华泽微福投资有限公司",
+ "value": "13"
+ }, {
+ "name": "南宁亮驹信息技术有限公司",
+ "value": "15"
+ }, {
+ "name": "南通亚保信息技术服务有限公司",
+ "value": "388"
+ }, {
+ "name": "南通稳健投资咨询有限公司",
+ "value": "196"
+ }, {
+ "name": "厦门中财在线网络科技有限公司",
+ "value": "271"
+ }, {
+ "name": "厦门人立企业管理咨询有限公司",
+ "value": "410"
+ }, {
+ "name": "厦门北斗行电子科技有限公司",
+ "value": "103"
+ }, {
+ "name": "厦门简约宝贝文化传播有限公司",
+ "value": "2"
+ }, {
+ "name": "合肥玺启商贸有限公司",
+ "value": "7313"
+ }, {
+ "name": "吉林省百盛金融外包服务有限公司",
+ "value": "3"
+ }, {
+ "name": "国美金融",
+ "value": "2250"
+ }, {
+ "name": "天津宏鑫源汽车维修有限公司",
+ "value": "80"
+ }, {
+ "name": "天津市宝坻区宇宙汽车销售有限公司",
+ "value": "332"
+ }, {
+ "name": "天津市车惠保商务信息咨询服务有限公司",
+ "value": "4"
+ }, {
+ "name": "天津市车行家汽车销售服务有限公司",
+ "value": "3"
+ }, {
+ "name": "天津恒信安泰电子信息技术有限公司",
+ "value": "382"
+ }, {
+ "name": "太湖县韦翊汽车销售有限公司",
+ "value": "3"
+ }, {
+ "name": "威海初雅文化传媒有限公司",
+ "value": "294"
+ }, {
+ "name": "孝感市开发区洁美汽车装饰美容店",
+ "value": "27"
+ }, {
+ "name": "孝感市焦点广告传媒有限责任公司",
+ "value": "1"
+ }, {
+ "name": "安徽帝诚人才服务有限公司",
+ "value": "9"
+ }, {
+ "name": "安徽行云天下科技有限公司",
+ "value": "29493"
+ }, {
+ "name": "宝鸡靓拳网络科技有限公司",
+ "value": "4"
+ }, {
+ "name": "宣城市爱车屋汽车销售有限公司",
+ "value": "56"
+ }, {
+ "name": "小米短信",
+ "value": "9166"
+ }, {
+ "name": "山东国银电子科技有限公司",
+ "value": "14"
+ }, {
+ "name": "山东天地通数码科技有限公司",
+ "value": "72"
+ }, {
+ "name": "山东腾信汽车服务有限公司",
+ "value": "2364"
+ }, {
+ "name": "山东车保汇网络科技有限公司",
+ "value": "31"
+ }, {
+ "name": "崇川区惠多保汽车服务中心",
+ "value": "80"
+ }, {
+ "name": "常州市如锦信息技术有限公司",
+ "value": "4613"
+ }, {
+ "name": "常州惠尔丰信息技术有限公司",
+ "value": "18"
+ }, {
+ "name": "常州车友电子商务有限公司",
+ "value": "25"
+ }, {
+ "name": "平安汽融",
+ "value": "4"
+ }, {
+ "name": "广东微转网络科技有限公司",
+ "value": "137"
+ }, {
+ "name": "广东途车网络科技有限公司",
+ "value": "14"
+ }, {
+ "name": "广东雄雄车信息科技有限公司",
+ "value": "155"
+ }, {
+ "name": "广州市时代互联科技有限公司",
+ "value": "1760"
+ }, {
+ "name": "广西创铄网络科技有限公司",
+ "value": "98"
+ }, {
+ "name": "广西车运佳二手车交易有限公司",
+ "value": "2"
+ }, {
+ "name": "开放平台PC",
+ "value": "62"
+ }, {
+ "name": "开放平台广告位",
+ "value": "13644"
+ }, {
+ "name": "徐州五度企业管理有限公司",
+ "value": "47"
+ }, {
+ "name": "徐州市保贵人网络科技有限公司",
+ "value": "148"
+ }, {
+ "name": "微信公众号",
+ "value": "6490"
+ }, {
+ "name": "快逸行",
+ "value": "10379"
+ }, {
+ "name": "惠州市车小宝汽车服务有限公司",
+ "value": "507"
+ }, {
+ "name": "惠州市鸿波投资有限公司",
+ "value": "165"
+ }, {
+ "name": "惠车无忧",
+ "value": "262"
+ }, {
+ "name": "成都和峰企业营销策划有限公司",
+ "value": "175"
+ }, {
+ "name": "抚州御风达服务有限公司",
+ "value": "78"
+ }, {
+ "name": "新乡市华谦信息服务有限公司",
+ "value": "11"
+ }, {
+ "name": "新乡市正安商贸有限公司",
+ "value": "52"
+ }, {
+ "name": "智富金融项目内部账号",
+ "value": "27"
+ }, {
+ "name": "来宾市鸿伟投资有限公司",
+ "value": "152"
+ }, {
+ "name": "杭州吉购实业有限公司",
+ "value": "3"
+ }, {
+ "name": "杭州小卡科技有限公司",
+ "value": "2"
+ }, {
+ "name": "枣庄天熹文化传播有限公司",
+ "value": "15800"
+ }, {
+ "name": "武汉博派通达科技有限公司",
+ "value": "620"
+ }, {
+ "name": "江苏润车网络科技有限公司",
+ "value": "198"
+ }, {
+ "name": "江西宝腾商务咨询有限公司",
+ "value": "37"
+ }, {
+ "name": "江西思建科技有限公司",
+ "value": "28"
+ }, {
+ "name": "江西揽进汽车贸易有限公司",
+ "value": "55"
+ }, {
+ "name": "江西省麦哲伦科技有限公司",
+ "value": "70"
+ }, {
+ "name": "江西赛宝网络科技有限公司",
+ "value": "93"
+ }, {
+ "name": "江阴宇橙电子商务有限公司",
+ "value": "455"
+ }, {
+ "name": "沂水县华馨创客企业管理咨询服务中心",
+ "value": "3002"
+ }, {
+ "name": "河南乾美实业有限公司",
+ "value": "1607"
+ }, {
+ "name": "河南云策智投信息科技有限公司",
+ "value": "2"
+ }, {
+ "name": "河南吴氏文化传媒有限公司",
+ "value": "234"
+ }, {
+ "name": "河南奥德新商务信息咨询有限公司",
+ "value": "8697"
+ }, {
+ "name": "河南悦幸汽车贸易有限公司",
+ "value": "3702"
+ }, {
+ "name": "河南有趣之间网络科技有限公司",
+ "value": "617"
+ }, {
+ "name": "河南永登信息技术有限公司",
+ "value": "1325"
+ }, {
+ "name": "河南润鹏汽车服务有限公司",
+ "value": "1"
+ }, {
+ "name": "河南盖文电子商务有限公司",
+ "value": "15"
+ }, {
+ "name": "河南荣兴汽车销售有限公司",
+ "value": "4"
+ }, {
+ "name": "河南行车道汽车租赁有限公司",
+ "value": "115"
+ }, {
+ "name": "河南诚益隆安网络技术有限公司",
+ "value": "2"
+ }, {
+ "name": "河南金信通信息服务有限公司",
+ "value": "3881"
+ }, {
+ "name": "洛阳华昶汽车服务有限公司",
+ "value": "14769"
+ }, {
+ "name": "济南拓盟网络科技有限公司",
+ "value": "258"
+ }, {
+ "name": "济南泛融汽车服务有限公司",
+ "value": "880"
+ }, {
+ "name": "济南鲁谊兄弟信息技术有限公司",
+ "value": "2"
+ }, {
+ "name": "淄博永浩汽车科技有限公司",
+ "value": "4"
+ }, {
+ "name": "深圳前海贝德财富有限公司",
+ "value": "7"
+ }, {
+ "name": "深圳市博盛汇通实业有限公司",
+ "value": "10"
+ }, {
+ "name": "深圳市宝晟互联信息技术有限公司",
+ "value": "4"
+ }, {
+ "name": "深圳市指掌通电子商务有限公司",
+ "value": "4"
+ }, {
+ "name": "深圳市晨威信息科技有限公司",
+ "value": "392"
+ }, {
+ "name": "深圳市通易达咨询服务有限公司",
+ "value": "2178"
+ }, {
+ "name": "深圳市鑫汇通企业管理有限公司",
+ "value": "1"
+ }, {
+ "name": "深圳百家财商教育服务有限公司",
+ "value": "714"
+ }, {
+ "name": "温州慧峰电子商务有限公司",
+ "value": "22"
+ }, {
+ "name": "渭南市临渭区鑫源电子科技服务部",
+ "value": "9"
+ }, {
+ "name": "湖北金曜信息技术有限责任公司",
+ "value": "205"
+ }, {
+ "name": "潍坊兴亚汽车服务有限公司",
+ "value": "146"
+ }, {
+ "name": "潍坊小蝌蚪信息科技有限公司",
+ "value": "331"
+ }, {
+ "name": "烟台博泰智能科技有限公司",
+ "value": "431"
+ }, {
+ "name": "烟台鸣韵文化传媒有限公司",
+ "value": "8"
+ }, {
+ "name": "熊猫森昊",
+ "value": "205"
+ }, {
+ "name": "牛牛云吉林网络科技有限公司",
+ "value": "9"
+ }, {
+ "name": "瓜子",
+ "value": "333"
+ }, {
+ "name": "百度移动品专分期位",
+ "value": "1"
+ }, {
+ "name": "百度移动搜索分期位",
+ "value": "1"
+ }, {
+ "name": "盐城云飞汽车俱乐部有限公司",
+ "value": "295"
+ }, {
+ "name": "直接流量",
+ "value": "40704"
+ }, {
+ "name": "直营APP分期产品位",
+ "value": "1702"
+ }, {
+ "name": "直营APP标准产品位",
+ "value": "15705"
+ }, {
+ "name": "直营广告官网标准位",
+ "value": "3"
+ }, {
+ "name": "直营广告手网分期位",
+ "value": "1289"
+ }, {
+ "name": "直营广告手网标准位",
+ "value": "919"
+ }, {
+ "name": "石家庄合信汽车服务有限公司",
+ "value": "355"
+ }, {
+ "name": "石家庄柏星网络科技有限公司",
+ "value": "2035"
+ }, {
+ "name": "福建皮皮车电子商务有限公司",
+ "value": "847"
+ }, {
+ "name": "网新新云联金融信息服务浙江有限公司",
+ "value": "109"
+ }, {
+ "name": "聊城市汇米网络科技有限公司",
+ "value": "97"
+ }, {
+ "name": "腾晟科技有限公司",
+ "value": "10"
+ }, {
+ "name": "腾讯征信",
+ "value": "2439"
+ }, {
+ "name": "苏州恩能信息科技有限公司",
+ "value": "80"
+ }, {
+ "name": "苏州萨普软件科技有限公司",
+ "value": "29"
+ }, {
+ "name": "莱西市芹杰商务信息服务部",
+ "value": "245"
+ }, {
+ "name": "蚌埠合辰汽车销售有限公司",
+ "value": "28"
+ }, {
+ "name": "许昌宇泽汽车服务咨询有限公司",
+ "value": "14"
+ }, {
+ "name": "赣州茶语文化有限公司",
+ "value": "1358"
+ }, {
+ "name": "车保通",
+ "value": "21"
+ }, {
+ "name": "车征",
+ "value": "190"
+ }, {
+ "name": "辉县市尚翰商贸有限公司",
+ "value": "10"
+ }, {
+ "name": "迁西县红森科技有限公司",
+ "value": "576"
+ }, {
+ "name": "远盟分期",
+ "value": "1256"
+ }, {
+ "name": "迪迪",
+ "value": "6"
+ }, {
+ "name": "途虎",
+ "value": "6327"
+ }, {
+ "name": "速保",
+ "value": "9"
+ }, {
+ "name": "郑州市凯硕企业管理咨询有限公司",
+ "value": "13691"
+ }, {
+ "name": "重庆凡驰科技有限公司",
+ "value": "323"
+ }, {
+ "name": "重庆创新谷网络科技有限公司",
+ "value": "16"
+ }, {
+ "name": "重庆和瑞汽车经纪服务有限公司",
+ "value": "184"
+ }, {
+ "name": "重庆圣亚汽车经纪有限公司",
+ "value": "229"
+ }, {
+ "name": "重庆沃盛汽车租赁有限公司",
+ "value": "23"
+ }, {
+ "name": "重庆聚保通网络科技有限公司",
+ "value": "15"
+ }, {
+ "name": "重庆蓝方慧行科技有限公司",
+ "value": "18"
+ }, {
+ "name": "重庆车网宝汽车销售有限公司",
+ "value": "159"
+ }, {
+ "name": "长安车联分期",
+ "value": "610"
+ }, {
+ "name": "陈天芬保险工作室",
+ "value": "55"
+ }, {
+ "name": "陕西万联电子商务有限公司",
+ "value": "13"
+ }, {
+ "name": "陕西真格广告文化传播有限公司",
+ "value": "7"
+ }, {
+ "name": "陕西蒲城孝华车驾咨询有限公司",
+ "value": "723"
+ }, {
+ "name": "陕西重旭实业有限责任公司",
+ "value": "9"
+ }, {
+ "name": "青岛东城汽车服务有限公司",
+ "value": "136"
+ }, {
+ "name": "青岛中汇投资管理有限公司",
+ "value": "293"
+ }, {
+ "name": "青岛云之翼电子商务有限公司",
+ "value": "3"
+ }, {
+ "name": "青岛凤泉网络技术信息服务有限责任公司",
+ "value": "40"
+ }, {
+ "name": "青岛彬彬网络技术信息服务有限责任公司",
+ "value": "481"
+ }, {
+ "name": "青岛德奥之星汽车服务有限公司",
+ "value": "31"
+ }, {
+ "name": "青岛易翔科技发展有限公司",
+ "value": "2608"
+ }, {
+ "name": "青岛艾特家家网络科技有限公司",
+ "value": "33"
+ }, {
+ "name": "青岛迪迪网络科技有限公司",
+ "value": "13"
+ }, {
+ "name": "青岛鲁西南文化传媒有限公司",
+ "value": "60"
+ }, {
+ "name": "驾图地推",
+ "value": "8"
+ }, {
+ "name": "高县川浙汽车贸易有限责任公司",
+ "value": "3"
+ }, {
+ "name": "黄山市上美汽贸有限公司",
+ "value": "5"
+ }, {
+ "name": '其它',
+ "value": "121320"
+ }]
+ }],
+ animation: false
+ };
+
+ const chart = echarts.init(document.querySelector('#main0'));
+ chart.setOption(option);
+
+ window.onresize = function () {
+ chart.resize();
+ }
+
+ const gui = new dat.GUI();
+ const config = {
+ labelLine: {
+ length: 15,
+ length2: 15,
+ smooth: 0.3
+ },
+ label: {
+ margin: 25,
+ bleedMargin: 10,
+ alignTo: 'none'
+ }
+ };
+
+ function update() {
+ chart.setOption({
+ series: {
+ label: Object.assign({}, config.label, {
+ margin: config.label.margin + '%'
+ }),
+ labelLine: config.labelLine
+ }
+ });
+ }
+
+ const labelFolder = gui.addFolder('label');
+ const labelLineFolder = gui.addFolder('labelLine');
+ labelFolder.open();
+ labelLineFolder.open();
+ labelFolder.add(config.label, 'alignTo', ['none', 'edge', 'labelLine']).onChange(update);
+ labelFolder.add(config.label, 'margin', 0, 50).onChange(update);
+ labelFolder.add(config.label, 'bleedMargin', 0, 500).onChange(update);
+ labelLineFolder.add(config.labelLine, 'length', 0, 500).onChange(update);
+ labelLineFolder.add(config.labelLine, 'length2', 0, 500).onChange(update);
+ labelLineFolder.add(config.labelLine, 'smooth', 0, 1).onChange(update);
+ });
+
+ </script>
+
+
+ </body>
+</html>
+
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org