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/18 14:53:03 UTC
[incubator-echarts-doc] branch live-example updated: example: add
UI on tooltip, calendar, pictorialBar
This is an automated email from the ASF dual-hosted git repository.
shenyi pushed a commit to branch live-example
in repository https://gitbox.apache.org/repos/asf/incubator-echarts-doc.git
The following commit(s) were added to refs/heads/live-example by this push:
new 96c5a53 example: add UI on tooltip,calendar,pictorialBar
96c5a53 is described below
commit 96c5a532ae973f62f7577ad59818c8ebc3a2b4e0
Author: pissang <bm...@gmail.com>
AuthorDate: Thu Jun 18 22:52:45 2020 +0800
example: add UI on tooltip,calendar,pictorialBar
---
src/components/LiveExample.vue | 15 +++--
zh/option/component/calendar.md | 107 +++++++++++++++++++++++++++++
zh/option/component/tooltip.md | 130 ++++++++++++++++++++++++++++++++++++
zh/option/partial/tooltip-common.md | 12 ++++
zh/option/series/pictorialBar.md | 72 ++++++++++++++++++++
5 files changed, 329 insertions(+), 7 deletions(-)
diff --git a/src/components/LiveExample.vue b/src/components/LiveExample.vue
index 56b30c9..6aa73ea 100644
--- a/src/components/LiveExample.vue
+++ b/src/components/LiveExample.vue
@@ -241,9 +241,11 @@ export default {
computed: {
optionCodeStr() {
const optStr = JSON.stringify(this.shared.currentExampleOption, function (key, value) {
- // if (typeof value === 'function') {
- // return "__functionstart__" + value.toString() + "__functionend__";
- // }
+ if (typeof value === 'function') {
+ return "__functionstart__"
+ + value.toString().replace(/\n/g, '__newline__') // avoid \n being escaped by JSON.stringify
+ + "__functionend__";
+ }
return value;
});
return `const option = ${optStr}`;
@@ -252,11 +254,10 @@ export default {
formattedOptionCodeStr() {
return beautify.js(this.optionCodeStr
.replace(/"(\w+)"\s*:/g, '$1:')
- // .replace(/"__functionstart__/g, "")
- // .replace(/__functionend__"/g, "")
+ .replace(/"__functionstart__/g, "")
+ .replace(/__functionend__"/g, "")
// newline from function
- // .replace(/\\n/g, '\n')
- , {
+ .replace(/__newline__/g, '\n'), {
indent_size: 2
});
}
diff --git a/zh/option/component/calendar.md b/zh/option/component/calendar.md
index 4d31c54..7ed14af 100644
--- a/zh/option/component/calendar.md
+++ b/zh/option/component/calendar.md
@@ -44,6 +44,59 @@
---
+<ExampleBaseOption name="calendar" title="日历图">
+function getVirtulData(year) {
+ year = year || '2017';
+ var date = +new Date(year + '-01-01');
+ var end = +new Date((+year + 1) + '-01-01');
+ var dayTime = 3600 * 24 * 1000;
+ var data = [];
+ for (var time = date; time < end; time += dayTime) {
+ data.push([
+ time,
+ Math.floor(Math.random() * 10000)
+ ]);
+ }
+ return data;
+}
+
+const option = {
+ title: {
+ top: 30,
+ left: 'center',
+ text: '2016年某人每天的步数'
+ },
+ tooltip: {},
+ visualMap: {
+ min: 0,
+ max: 10000,
+ type: 'piecewise',
+ orient: 'horizontal',
+ left: 'center',
+ top: 65,
+ textStyle: {
+ color: '#000'
+ }
+ },
+ calendar: {
+ top: 120,
+ left: 30,
+ right: 30,
+ cellSize: ['auto', 13],
+ range: '2016',
+ itemStyle: {
+ borderWidth: 0.5
+ },
+ yearLabel: {show: false}
+ },
+ series: {
+ type: 'heatmap',
+ coordinateSystem: 'calendar',
+ data: getVirtulData(2016)
+ }
+};
+</ExampleBaseOption>
+
{{use: partial-component-id(prefix="#")}}
{{ use: partial-rect-layout-width-height(
@@ -75,6 +128,8 @@ range: ['2017-01', '2017-02']
## cellSize(number|Array) = 20
+<ExampleUIControlNumber min="0" step="1" default="20" />
+
日历每格框的大小,可设置单值 或数组 第一个元素是宽 第二个元素是高。
支持设置自适应:`auto`, 默认为高宽均为20
@@ -99,17 +154,27 @@ cellSize: ['auto', 40]
```
## width(number|string) = auto
+
+<ExampleUIControlNumber min="0" step="1" />
+
日历坐标的整体宽度
注意: 默认cellSize 为20,若设置了`width`的值, 则`cellSize`中的宽度强制转为`auto`;
## height(number|string) = auto
+
+<ExampleUIControlNumber min="0" step="1" />
+
日历坐标的整体高度,
注意: 默认cellSize 为20,若设置了`height`的值, 则`cellSize`中的高度强制转为`auto`;
## orient(string) = 'horizontal'
+
+
+<ExampleUIControlEnum options="horizontal,vertical" default="horizontal" />
+
日历坐标的布局朝向。
可选:
@@ -120,6 +185,9 @@ cellSize: ['auto', 40]
设置日历坐标分隔线的样式。
### show(boolean) = ${defaultShow|default(true)}
+
+<ExampleUIControlBoolean show="${defaultShow|default(true)}" />
+
是否显示分隔线。默认显示。
### lineStyle(Object)
@@ -173,9 +241,15 @@ calendar: [{
设置日历坐标中 星期轴的样式
### show(boolean) = true
+
+<ExampleUIControlBoolean default="true" />
+
是否在普通状态下显示标签。
### firstDay(number) = 0
+
+<ExampleUIControlNumber min="0" max="6" step="1" />
+
一周从周几开始,默认从周日开始
例如:
@@ -191,9 +265,15 @@ calendar: [{
```
### margin(number) = 0
+
+<ExampleUIControlNumber min="0" step="1" />
+
星期标签与轴线之间的距离
### position(string) = 'start'
+
+<ExampleUIControlEnum options="start,end" default="start" />
+
星期的位置 在星期轴的开头还是结尾。
可选:
@@ -201,6 +281,9 @@ calendar: [{
+ 'end'
### nameMap(string|Array) = 'en'
+
+<ExampleUIControlEnum options="en,cn" default="en" />
+
星期显示的效果,默认为'en'
可设置中英文以及自定义
下标0为对应星期天的文字显示
@@ -228,9 +311,15 @@ calendar: [{
设置日历坐标中 月份轴的样式
### show(boolean) = true
+
+<ExampleUIControlBoolean default="true" />
+
是否在普通状态下显示标签。
### align(string) = 'center'
+
+<ExampleUIControlEnum options="left,center" default="center" />
+
设置月份区间内的月份文字位置。
可选:
@@ -238,9 +327,15 @@ calendar: [{
+ 'left' // 区间内的左边
### margin(number) = 5
+
+<ExampleUIControlNumber min="0" step="5" />
+
月份标签与轴线之间的距离
### position(string) = 'start'
+
+<ExampleUIControlEnum options="start,end" default="start" />
+
月份的位置 在开头还是结尾。
可选:
@@ -248,6 +343,9 @@ calendar: [{
+ 'end'
### nameMap(string|Array) = 'en'
+
+<ExampleUIControlEnum options="en,cn" default="en" />
+
月份显示的效果,默认为'en'
可设置中英文以及自定义
下标0为对应一月的文字显示
@@ -318,12 +416,21 @@ formatter: function (param) {
设置日历坐标中 年的样式
### show(boolean) = true
+
+<ExampleUIControlBoolean default="true" />
+
是否在普通状态下显示标签。
### margin(number) = 30
+
+<ExampleUIControlNumber min="0" step="1" />
+
年份与轴线之间的距离
### position(string)
+
+<ExampleUIControlEnum options="top,bottom,left,right" />
+
年份的位置
默认横向是'left' 竖向是'top'
diff --git a/zh/option/component/tooltip.md b/zh/option/component/tooltip.md
index f43454a..e36d53e 100644
--- a/zh/option/component/tooltip.md
+++ b/zh/option/component/tooltip.md
@@ -9,23 +9,139 @@
{{use: partial-tooltip-introduction}}
+
+<ExampleBaseOption name="tooltip" title="提示框">
+var base = +new Date(2016, 9, 3);
+var oneDay = 24 * 3600 * 1000;
+var valueBase = Math.random() * 300;
+var valueBase2 = Math.random() * 50;
+var data = [];
+var data2 = [];
+
+for (var i = 1; i < 10; i++) {
+ var now = new Date(base += oneDay);
+ var dayStr = [now.getFullYear(), now.getMonth() + 1, now.getDate()].join('-');
+
+ valueBase = Math.round((Math.random() - 0.5) * 20 + valueBase);
+ valueBase <= 0 && (valueBase = Math.random() * 300);
+ data.push([dayStr, valueBase]);
+
+ valueBase2 = Math.round((Math.random() - 0.5) * 20 + valueBase2);
+ valueBase2 <= 0 && (valueBase2 = Math.random() * 50);
+ data2.push([dayStr, valueBase2]);
+}
+
+const option = {
+ legend: {
+ top: 'bottom',
+ data: ['意向']
+ },
+ tooltip: {
+ triggerOn: 'none',
+ alwaysShowContent: true,
+ position: function (pt) {
+ return [pt[0], 130];
+ }
+ },
+ xAxis: {
+ type: 'time',
+ // boundaryGap: [0, 0],
+ axisPointer: {
+ value: '2016-10-7',
+ snap: true,
+ label: {
+ show: true,
+ formatter: function (params) {
+ return echarts.format.formatTime('yyyy-MM-dd', params.value);
+ }
+ },
+ handle: {
+ show: true
+ }
+ },
+ splitLine: {
+ show: false
+ }
+ },
+ yAxis: {
+ type: 'value',
+ axisTick: {
+ inside: true
+ },
+ splitLine: {
+ show: false
+ },
+ axisLabel: {
+ inside: true
+ },
+ z: 10
+ },
+ grid: {
+ top: 110,
+ left: 15,
+ right: 15,
+ height: 160
+ },
+ series: [
+ {
+ name: '模拟数据',
+ type: 'line',
+ smooth: true,
+ symbol: 'circle',
+ symbolSize: 5,
+ sampling: 'average',
+ itemStyle: {
+ color: '#8ec6ad'
+ },
+ stack: 'a',
+ areaStyle: {
+ },
+ data: data
+ },
+ {
+ name: '模拟数据',
+ type: 'line',
+ smooth: true,
+ stack: 'a',
+ symbol: 'circle',
+ symbolSize: 5,
+ sampling: 'average',
+ itemStyle: {
+ color: '#d68262'
+ },
+ areaStyle: {
+ },
+ data: data2
+ }
+
+ ]
+};
+</ExampleBaseOption>
+
{{use: partial-tooltip-coords-common(
prefix='#',
galleryViewPath=${galleryViewPath}
)}}
+
## showContent(boolean) = true
+<ExampleUIControlBoolean default="true" />
+
是否显示提示框浮层,默认显示。只需tooltip触发事件或显示axisPointer而不需要显示内容时可配置该项为`false`。
## alwaysShowContent(boolean) = false
+<ExampleUIControlBoolean default="false" />
+
是否永远显示提示框内容,默认情况下在移出可触发提示框区域后 [一定时间](~tooltip.hideDelay) 后隐藏,设置为 `true` 可以保证一直显示提示框内容。
该属性为 ECharts 3.0 中新加。
## triggerOn(string) = 'mousemove|click'
+<ExampleUIControlEnum options="mousemove|click,mousemove,click" />
+
提示框触发的条件,可选:
+ `'mousemove'`
@@ -48,28 +164,40 @@
## showDelay(number) = 0
+<ExampleUIControlNumber min="0" step="20" />
+
浮层显示的延迟,单位为 ms,默认没有延迟,也不建议设置。在 [triggerOn](~tooltip.triggerOn) 为 `'mousemove'` 时有效。
## hideDelay(number) = 100
+<ExampleUIControlNumber min="0" step="20" default="100" />
+
浮层隐藏的延迟,单位为 ms,在 [alwaysShowContent](~tooltip.alwaysShowContent) 为 `true` 的时候无效。
## enterable(boolean) = false
+<ExampleUIControlBoolean default="false" />
+
鼠标是否可进入提示框浮层中,默认为false,如需详情内交互,如添加链接,按钮,可设置为 `true`。
## renderMode(string) = 'html'
+<ExampleUIControlEnum options="html,richText" default="html" />
+
浮层的渲染模式,默认以 `'html` 即额外的 DOM 节点展示 tooltip;此外还可以设置为 `'richText'` 表示以富文本的形式渲染,渲染的结果在图表对应的 Canvas 中(目前 SVG 尚未支持富文本),这对于一些没有 DOM 的环境(如微信小程序)有更好的支持。
## confine(boolean) = false
+<ExampleUIControlBoolean default="false" />
+
是否将 tooltip 框限制在图表的区域内。
当图表外层的 dom 被设置为 `'overflow: hidden'`,或者移动端窄屏,导致 tooltip 超出外界被截断时,此配置比较有用。
## appendToBody(boolean) = false
+<ExampleUIControlBoolean default="false" />
+
{{ use: partial-version(version="4.7.0") }}
是否将 tooltip 的 DOM 节点添加为 HTML 的 `<body>` 的子节点。只有当 [renderMode](~tooltip.renderMode) 为 `'html'` 是有意义的。
@@ -83,6 +211,8 @@
## transitionDuration(number) = 0.4
+<ExampleUIControlNumber min="0" step="0.1" default="0.4" />
+
提示框浮层的移动动画过渡时间,单位是 s,设置为 0 的时候会紧跟着鼠标移动。
diff --git a/zh/option/partial/tooltip-common.md b/zh/option/partial/tooltip-common.md
index 870b075..fd084d0 100644
--- a/zh/option/partial/tooltip-common.md
+++ b/zh/option/partial/tooltip-common.md
@@ -103,11 +103,15 @@
#${prefix} show(boolean) = true
+<ExampleUIControlBoolean default="true" />
+
是否显示提示框组件,包括提示框浮层和 [axisPointer](~tooltip.axisPointer)。
#${prefix} trigger(string) = 'item'
+<ExampleUIControlEnum default="item,axis,none" />
+
触发类型。
可选:
@@ -143,6 +147,8 @@
##${prefix} type(string) = 'line'
+<ExampleUIControlEnum default="none,line,shadow,cross" />
+
指示器类型。
可选
@@ -340,18 +346,24 @@ formatter: function (params, ticket, callback) {
#${prefix} borderColor(Color) = '#333'
+<ExampleUIControlColor default="#333" />
+
{{use: partial-tooltip-scope-tip(scope=${scope})}}
提示框浮层的边框颜色。
#${prefix} borderWidth(number) = 0
+<ExampleUIControlNumber default="0" step="0.5" />
+
{{use: partial-tooltip-scope-tip(scope=${scope})}}
提示框浮层的边框宽。
#${prefix} padding(number) = 5
+<ExampleUIControlVector dims="T,R,B,L" default="5,5,5,5" />
+
{{use: partial-tooltip-scope-tip(scope=${scope})}}
{{ use: partial-padding(componentName='提示框浮层') }}
diff --git a/zh/option/series/pictorialBar.md b/zh/option/series/pictorialBar.md
index b3c6a94..3662e8a 100644
--- a/zh/option/series/pictorialBar.md
+++ b/zh/option/series/pictorialBar.md
@@ -45,6 +45,58 @@
参见例子:
~[800x600](${galleryViewPath}doc-example/pictorialBar-clip&reset=1&edit=1)
+<ExampleBaseOption title="基础象形柱图" name="pictorial-bar">
+var spirit = 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHUAAACUCAYAAACtHGabAAAACXBIWXMAABcSAAAXEgFnn9JSAAAKTWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN3WJP3Fj7f92UPVkLY8LGXbIEAIiOsCMgQWaIQkgBhhBASQMWFiApWFBURnEhVxILVCkidiOKgKLhnQYqIWotVXDjuH9yntX167+3t+9f7vOec5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ5svCZwXFAADwA3l4fnSwP/wBr28AAgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgUAMgYALBTs2QKAJQAAGx5fEIiAKoNAOz0ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWBUiwCwMIAoKxAIi4EwK4BgFm2MkcC [...]
+
+var maxData = 2000;
+
+option = {
+ tooltip: {
+ },
+ xAxis: {
+ max: maxData,
+ splitLine: {show: false},
+ offset: 10,
+ axisLine: {
+ lineStyle: {
+ color: '#999'
+ }
+ },
+ axisLabel: {
+ margin: 10
+ }
+ },
+ yAxis: {
+ data: ['2013', '2014', '2015', '2016'],
+ inverse: true,
+ axisTick: {show: false},
+ axisLine: {show: false},
+ axisLabel: {
+ margin: 10,
+ color: '#999',
+ fontSize: 16
+ }
+ },
+ grid: {
+ top: 'center',
+ height: 200,
+ left: 70,
+ right: 100
+ },
+ series: [{
+ // current data
+ type: 'pictorialBar',
+ symbol: spirit,
+ symbolRepeat: 'fixed',
+ symbolMargin: '5%',
+ symbolClip: true,
+ symbolSize: 30,
+ symbolBoundingData: maxData,
+ data: [891, 1220, 660, 1670],
+ z: 10
+ }]
+};
+</ExampleBaseOption>
## type(string) = 'pictorialBar'
@@ -209,6 +261,8 @@
#${prefix} symbolSize(number|Array) = ['100%', '100%']
+<ExampleUIControlPercent default="100%,100%" dims="W,H" />
+
图形的大小。
可以用数组分开表示宽和高,例如 `[20, 10]` 表示标记宽为`20`,高为`10`,也可以设置成诸如 `10` 这样单一的数字,表示 `[10, 10]`。
@@ -234,6 +288,8 @@
#${prefix} symbolPosition(string) = 'start'
+<ExampleUIControlEnum options="start,end,center" default="start" />
+
图形的定位位置。可取值:
+ `'start'`:图形边缘与柱子开始的地方内切。
@@ -248,6 +304,8 @@
#${prefix} symbolOffset(Array) = [0, 0]
+<ExampleUIControlPercentVector default="0,0" dims="x,y" />
+
图形相对于原本位置的偏移。`symbolOffset` 是图形定位中最后计算的一个步骤,可以对图形计算出来的位置进行微调。
可以设置成绝对值(如 `10`),也可以设置成百分比(如 `'120%'`、`['55%', 23]`)。
@@ -264,6 +322,8 @@
#${prefix} symbolRotate(number)
+<ExampleUIControlAngle min="-360" max="360" step="1" />
+
图形的旋转角度。
注意,`symbolRotate` 并不会影响图形的定位(哪怕超出基准柱的边界),而只是单纯得绕自身中心旋转。
@@ -273,6 +333,8 @@
#${prefix} symbolRepeat(boolean|number|string)
+<ExampleUIControlEnum options="true,false,fixed" />
+
指定图形元素是否重复。值可为:
+ `false`/`null`/`undefined`:不重复,即每个数据值用一个图形元素表示。
@@ -288,6 +350,8 @@
#${prefix} symbolRepeatDirection(string) = 'start'
+<ExampleUIControlEnum options="start,end" default="start" />
+
指定图形元素重复时,绘制的顺序。这个属性在两种情况下有用处:
+ 当 [symbolMargin](~series-pictorialBar.symbolMargin) 设置为负值时,重复的图形会互相覆盖,这是可以使用 `symbolRepeatDirection` 来指定覆盖顺序。
@@ -304,6 +368,8 @@
#${prefix} symbolMargin(number|string)
+<ExampleUIControlPercentVector default="0,0" dims="x,y" />
+
图形的两边间隔(『两边』是指其数值轴方向的两边)。可以是绝对数值(如 `20`),或者百分比值(如 `'-30%'`),表示相对于自身尺寸 [symbolSize](~series-pictorialBar.symbolSize) 的百分比。只有当 [symbolRepeat](~series-pictorialBar.symbolRepeat) 被使用时有意义。
可以是正值,表示间隔大;也可以是负数。当 [symbolRepeat](~series-pictorialBar.symbolRepeat) 被使用时,负数时能使图形重叠。
@@ -325,6 +391,8 @@
#${prefix} symbolClip(boolean) = false
+<ExampleUIControlBoolean />
+
是否剪裁图形。
+ `false`/null/undefined:图形本身表示数值大小。
@@ -388,6 +456,8 @@
#${prefix} symbolPatternSize(number) = 400
+<ExampleUIControlNumber default="400" step="10" min="0" />
+
可以使用图片作为图形的 pattern。
```js
@@ -420,6 +490,8 @@ itemStyle: {
#${prefix} hoverAnimation(boolean) = false
+<ExampleUIControlBoolean />
+
是否开启 hover 在图形上的提示动画效果。
{{ use: pictorialBar-symbol-attrs-cascade(attrName='hoverAnimation') }}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org