vislite 1.12.0-alpha.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +402 -394
  3. package/LICENSE +20 -20
  4. package/README-en.md +245 -245
  5. package/README.md +245 -245
  6. package/bin/formatArgv.js +30 -30
  7. package/bin/help.js +17 -17
  8. package/bin/run +21 -21
  9. package/bin/skills.js +26 -26
  10. package/lib/BarLayout/index.es.js +348 -348
  11. package/lib/Buffer/index.es.js +34 -34
  12. package/lib/Canvas/index.es.js +804 -800
  13. package/lib/Canvas/index.es.min.js +1 -1
  14. package/lib/Cardinal/index.es.js +89 -89
  15. package/lib/Eoap/index.es.js +32 -32
  16. package/lib/Hermite/index.es.js +34 -34
  17. package/lib/MapCoordinate/index.es.js +199 -199
  18. package/lib/Matrix4/index.es.js +123 -123
  19. package/lib/Mercator/index.es.js +18 -18
  20. package/lib/PieLayout/index.es.js +115 -115
  21. package/lib/RawCanvas/index.es.js +736 -732
  22. package/lib/RawCanvas/index.es.min.js +1 -1
  23. package/lib/SVG/index.es.js +626 -631
  24. package/lib/SVG/index.es.min.js +1 -1
  25. package/lib/Shader/index.es.js +34 -34
  26. package/lib/Texture/index.es.js +52 -52
  27. package/lib/TreeLayout/index.es.js +301 -315
  28. package/lib/animation/index.es.js +2 -2
  29. package/lib/assemble/index.es.js +19 -16
  30. package/lib/assemble/index.es.min.js +1 -1
  31. package/lib/getLoopColors/index.es.js +34 -34
  32. package/lib/getWebGLContext/index.es.js +61 -61
  33. package/lib/index.umd.js +2797 -2784
  34. package/lib/index.umd.min.js +2 -2
  35. package/lib/initOption/index.es.js +5 -5
  36. package/lib/mergeOption/index.es.js +34 -34
  37. package/lib/move/index.es.js +6 -6
  38. package/lib/rotate/index.es.js +6 -6
  39. package/lib/ruler/index.es.js +136 -136
  40. package/lib/scale/index.es.js +5 -5
  41. package/minialipay/ui-canvas/drawImage.js +35 -35
  42. package/minialipay/ui-canvas/index.acss +4 -4
  43. package/minialipay/ui-canvas/index.axml +3 -3
  44. package/minialipay/ui-canvas/index.d.ts +1 -1
  45. package/minialipay/ui-canvas/index.js +100 -100
  46. package/minialipay/ui-canvas/index.json +6 -6
  47. package/miniprogram/ui-canvas/drawImage.js +35 -35
  48. package/miniprogram/ui-canvas/index.js +125 -125
  49. package/miniprogram/ui-canvas/index.json +4 -4
  50. package/miniprogram/ui-canvas/index.wxml +4 -4
  51. package/miniprogram/ui-canvas/index.wxss +5 -5
  52. package/package/BarLayout/index.ts +2 -2
  53. package/package/Buffer/index.ts +2 -2
  54. package/package/Canvas/index.ts +2 -2
  55. package/package/Cardinal/index.ts +2 -2
  56. package/package/Eoap/index.ts +2 -2
  57. package/package/Hermite/index.ts +2 -2
  58. package/package/MapCoordinate/index.ts +2 -2
  59. package/package/Matrix4/index.ts +2 -2
  60. package/package/Mercator/index.ts +2 -2
  61. package/package/PieLayout/index.ts +2 -2
  62. package/package/RawCanvas/index.ts +2 -2
  63. package/package/SVG/index.ts +2 -2
  64. package/package/Shader/index.ts +2 -2
  65. package/package/Texture/index.ts +2 -2
  66. package/package/TreeLayout/index.ts +2 -2
  67. package/package/animation/index.ts +5 -5
  68. package/package/assemble/index.ts +2 -2
  69. package/package/getLoopColors/index.ts +2 -2
  70. package/package/getWebGLContext/index.ts +40 -40
  71. package/package/index.ts +84 -84
  72. package/package/initOption/index.ts +2 -2
  73. package/package/mergeOption/index.ts +2 -2
  74. package/package/move/index.ts +2 -2
  75. package/package/rotate/index.ts +2 -2
  76. package/package/ruler/index.ts +2 -2
  77. package/package/scale/index.ts +2 -2
  78. package/package/throttle/index.ts +2 -2
  79. package/package.json +79 -79
  80. package/skills/vislite-lib/BarLayout.md +117 -117
  81. package/skills/vislite-lib/Canvas.md +183 -183
  82. package/skills/vislite-lib/Interpolation.md +129 -129
  83. package/skills/vislite-lib/Matrix.md +174 -174
  84. package/skills/vislite-lib/PieLayout.md +131 -131
  85. package/skills/vislite-lib/Projections.md +158 -158
  86. package/skills/vislite-lib/SKILL.md +179 -179
  87. package/skills/vislite-lib/SVG.md +137 -137
  88. package/skills/vislite-lib/TreeLayout.md +176 -176
  89. package/skills/vislite-lib/Utilities.md +261 -261
  90. package/skills/vislite-lib/WebGL.md +106 -106
  91. package/skills/vislite-lib/minialipay/ui-canvas.md +95 -95
  92. package/skills/vislite-lib/miniprogram/ui-canvas.md +98 -98
  93. package/skills/vislite-lib/uniapp/ui-canvas.md +113 -113
  94. package/src/Canvas.ts +89 -89
  95. package/src/Eoap.ts +66 -66
  96. package/src/Matrix4/index.ts +84 -84
  97. package/src/Matrix4/move.ts +12 -12
  98. package/src/Matrix4/rotate.ts +15 -15
  99. package/src/Matrix4/scale.ts +11 -11
  100. package/src/Matrix4/transform.ts +64 -64
  101. package/src/Mercator.ts +27 -27
  102. package/src/SVG.ts +86 -69
  103. package/src/common/assemble.ts +30 -22
  104. package/src/common/canvas/arc.ts +51 -51
  105. package/src/common/canvas/config.ts +176 -176
  106. package/src/common/canvas/default.ts +64 -64
  107. package/src/common/canvas/gradient.ts +31 -31
  108. package/src/common/canvas/index.ts +189 -189
  109. package/src/common/canvas/painter.ts +475 -454
  110. package/src/common/canvas/texts.ts +18 -18
  111. package/src/common/map/getBoundary.ts +15 -15
  112. package/src/common/map/tool.ts +29 -29
  113. package/src/common/option.ts +31 -31
  114. package/src/common/setStyle.ts +5 -5
  115. package/src/common/svg/config.ts +213 -213
  116. package/src/common/svg/default.ts +29 -29
  117. package/src/common/svg/gradient.ts +53 -53
  118. package/src/common/svg/index.ts +420 -420
  119. package/src/common/svg/tool.ts +51 -51
  120. package/src/common/tree/index.ts +25 -25
  121. package/src/common/tree/toInnerTree.ts +61 -61
  122. package/src/common/tree/toPlainTree.ts +135 -135
  123. package/src/common/type.ts +26 -26
  124. package/src/common/webgl/buffer.ts +79 -79
  125. package/src/common/webgl/getWebGLContext.ts +45 -45
  126. package/src/common/webgl/shader.ts +75 -75
  127. package/src/common/webgl/texture.ts +98 -98
  128. package/src/coordinate/MapCoordinate.ts +80 -80
  129. package/src/getLoopColors.ts +42 -42
  130. package/src/interpolation/Cardinal.ts +110 -110
  131. package/src/interpolation/Hermite.ts +65 -65
  132. package/src/layout/BarLayout.ts +249 -249
  133. package/src/layout/PieLayout.ts +146 -146
  134. package/src/layout/TreeLayout.ts +200 -200
  135. package/src/move.ts +7 -7
  136. package/src/rotate.ts +7 -7
  137. package/src/ruler.ts +209 -209
  138. package/src/scale.ts +6 -6
  139. package/types/Bar.d.ts +91 -91
  140. package/types/BarConfig.d.ts +4 -4
  141. package/types/BarLayout.d.ts +48 -48
  142. package/types/BarOption.d.ts +31 -31
  143. package/types/Buffer.d.ts +30 -30
  144. package/types/Canvas.d.ts +379 -379
  145. package/types/CanvasConfig.d.ts +61 -61
  146. package/types/CanvasOption.d.ts +13 -13
  147. package/types/CanvasOpts.d.ts +9 -9
  148. package/types/Cardinal.d.ts +20 -20
  149. package/types/Gradient.d.ts +20 -20
  150. package/types/Hermite.d.ts +25 -25
  151. package/types/Map.d.ts +9 -9
  152. package/types/MapConfig.d.ts +27 -27
  153. package/types/MapCoordinate.d.ts +22 -22
  154. package/types/Matrix4.d.ts +79 -79
  155. package/types/Pie.d.ts +73 -73
  156. package/types/PieConfig.d.ts +26 -26
  157. package/types/PieLayout.d.ts +40 -40
  158. package/types/PieOption.d.ts +21 -21
  159. package/types/SVG.d.ts +282 -282
  160. package/types/SVGConfig.d.ts +54 -54
  161. package/types/Shader.d.ts +22 -22
  162. package/types/Texture.d.ts +22 -22
  163. package/types/Tree.d.ts +74 -74
  164. package/types/TreeConfig.d.ts +52 -52
  165. package/types/TreeLayout.d.ts +71 -71
  166. package/types/TreeOption.d.ts +48 -48
  167. package/types/animation.d.ts +26 -26
  168. package/types/assemble.d.ts +14 -14
  169. package/types/getLoopColors.d.ts +13 -13
  170. package/types/getWebGLContext.d.ts +7 -7
  171. package/types/index.d.ts +220 -221
  172. package/types/module.d.ts +110 -110
  173. package/types/move.d.ts +15 -15
  174. package/types/option.d.ts +12 -12
  175. package/types/painterConfig.d.ts +14 -14
  176. package/types/rotate.d.ts +15 -15
  177. package/types/ruler.d.ts +24 -24
  178. package/types/scale.d.ts +15 -15
  179. package/types/throttle.d.ts +6 -6
  180. package/types/ui-canvas.d.ts +4 -4
  181. package/types/uni-canvas.d.ts +3 -3
  182. package/uni-app/drawImage.js +19 -19
  183. package/uni-app/ui-canvas.vue +295 -295
package/package/index.ts CHANGED
@@ -1,85 +1,85 @@
1
- import Cardinal from "./Cardinal/index"
2
- import Hermite from "./Hermite/index"
3
-
4
- import Matrix4 from "./Matrix4/index"
5
- import rotate from "./rotate/index"
6
- import move from "./move/index"
7
- import scale from "./scale/index"
8
-
9
- import getLoopColors from "./getLoopColors/index"
10
- import animation from "./animation/index"
11
- import ruler from "./ruler/index"
12
-
13
- import SVG from "./SVG/index"
14
- import Canvas from "./Canvas/index"
15
- import RawCanvas from "../src/common/canvas/index"
16
-
17
- import getWebGLContext from "./getWebGLContext/index"
18
- import Shader from "./Shader/index"
19
- import Texture from "./Texture/index"
20
- import Buffer from "./Buffer/index"
21
-
22
- import Eoap from "./Eoap/index"
23
- import Mercator from "./Mercator/index"
24
-
25
- import throttle from "./throttle/index"
26
-
27
- import MapCoordinate from "./MapCoordinate/index"
28
-
29
- import TreeLayout from "./TreeLayout/index"
30
- import PieLayout from "./PieLayout/index"
31
- import BarLayout from "./BarLayout/index"
32
-
33
- import initOption from "./initOption/index"
34
- import mergeOption from "./mergeOption/index"
35
-
36
- import assemble from "./assemble/index"
37
-
38
- export default {
39
-
40
- // 插值
41
- Cardinal,
42
- Hermite,
43
-
44
- // 变换
45
- Matrix4,
46
- rotate,
47
- move,
48
- scale,
49
-
50
- // 工具
51
- getLoopColors,
52
- animation,
53
- ruler,
54
-
55
- // 画笔
56
- SVG,
57
- Canvas,
58
- RawCanvas,
59
-
60
- // WebGL
61
- getWebGLContext,
62
- Shader,
63
- Texture,
64
- Buffer,
65
-
66
- // 投影
67
- Eoap,
68
- Mercator,
69
-
70
- // 辅助
71
- throttle,
72
- assemble,
73
-
74
- // 坐标系
75
- MapCoordinate,
76
-
77
- // 布局
78
- TreeLayout,
79
- PieLayout,
80
- BarLayout,
81
-
82
- // 配置项
83
- initOption,
84
- mergeOption
1
+ import Cardinal from "./Cardinal/index"
2
+ import Hermite from "./Hermite/index"
3
+
4
+ import Matrix4 from "./Matrix4/index"
5
+ import rotate from "./rotate/index"
6
+ import move from "./move/index"
7
+ import scale from "./scale/index"
8
+
9
+ import getLoopColors from "./getLoopColors/index"
10
+ import animation from "./animation/index"
11
+ import ruler from "./ruler/index"
12
+
13
+ import SVG from "./SVG/index"
14
+ import Canvas from "./Canvas/index"
15
+ import RawCanvas from "../src/common/canvas/index"
16
+
17
+ import getWebGLContext from "./getWebGLContext/index"
18
+ import Shader from "./Shader/index"
19
+ import Texture from "./Texture/index"
20
+ import Buffer from "./Buffer/index"
21
+
22
+ import Eoap from "./Eoap/index"
23
+ import Mercator from "./Mercator/index"
24
+
25
+ import throttle from "./throttle/index"
26
+
27
+ import MapCoordinate from "./MapCoordinate/index"
28
+
29
+ import TreeLayout from "./TreeLayout/index"
30
+ import PieLayout from "./PieLayout/index"
31
+ import BarLayout from "./BarLayout/index"
32
+
33
+ import initOption from "./initOption/index"
34
+ import mergeOption from "./mergeOption/index"
35
+
36
+ import assemble from "./assemble/index"
37
+
38
+ export default {
39
+
40
+ // 插值
41
+ Cardinal,
42
+ Hermite,
43
+
44
+ // 变换
45
+ Matrix4,
46
+ rotate,
47
+ move,
48
+ scale,
49
+
50
+ // 工具
51
+ getLoopColors,
52
+ animation,
53
+ ruler,
54
+
55
+ // 画笔
56
+ SVG,
57
+ Canvas,
58
+ RawCanvas,
59
+
60
+ // WebGL
61
+ getWebGLContext,
62
+ Shader,
63
+ Texture,
64
+ Buffer,
65
+
66
+ // 投影
67
+ Eoap,
68
+ Mercator,
69
+
70
+ // 辅助
71
+ throttle,
72
+ assemble,
73
+
74
+ // 坐标系
75
+ MapCoordinate,
76
+
77
+ // 布局
78
+ TreeLayout,
79
+ PieLayout,
80
+ BarLayout,
81
+
82
+ // 配置项
83
+ initOption,
84
+ mergeOption
85
85
  }
@@ -1,3 +1,3 @@
1
- import { initOption } from "../../src/common/option"
2
-
1
+ import { initOption } from "../../src/common/option"
2
+
3
3
  export default initOption
@@ -1,3 +1,3 @@
1
- import { mergeOption } from "../../src/common/option"
2
-
1
+ import { mergeOption } from "../../src/common/option"
2
+
3
3
  export default mergeOption
@@ -1,3 +1,3 @@
1
- import move from "../../src/move"
2
-
1
+ import move from "../../src/move"
2
+
3
3
  export default move
@@ -1,3 +1,3 @@
1
- import rotate from "../../src/rotate"
2
-
1
+ import rotate from "../../src/rotate"
2
+
3
3
  export default rotate
@@ -1,3 +1,3 @@
1
- import ruler from "../../src/ruler"
2
-
1
+ import ruler from "../../src/ruler"
2
+
3
3
  export default ruler
@@ -1,3 +1,3 @@
1
- import scale from "../../src/scale"
2
-
1
+ import scale from "../../src/scale"
2
+
3
3
  export default scale
@@ -1,3 +1,3 @@
1
- import { throttle } from "oipage/web/throttle/index"
2
-
1
+ import { throttle } from "oipage/web/throttle/index"
2
+
3
3
  export default throttle
package/package.json CHANGED
@@ -1,79 +1,79 @@
1
- {
2
- "name": "vislite",
3
- "version": "1.12.0-alpha.0",
4
- "description": "灵活、快速、简单的数据可视化交互式跨端前端库",
5
- "main": "./lib/index.umd.min.js",
6
- "typings": "./types/index.d.ts",
7
- "unpkg": "./lib/index.umd.min.js",
8
- "jsdelivr": "./lib/index.umd.min.js",
9
- "sideEffects": false,
10
- "scripts": {
11
- "dev": "webpack serve --config ./build/webpack.config.js",
12
- "build": "oipage-cli disk -d ./lib && node ./build/pkg.js",
13
- "test": "karma start ./build/karma.config.js",
14
- "lint": "eslint src/**/*.ts --fix"
15
- },
16
- "bin": {
17
- "vislite-cli": "bin/run"
18
- },
19
- "miniprogram": ".",
20
- "repository": {
21
- "type": "git",
22
- "url": "git+https://github.com/oi-contrib/VISLite.git"
23
- },
24
- "keywords": [
25
- "svg",
26
- "webgl",
27
- "typescript",
28
- "canvas",
29
- "vue",
30
- "uniapp",
31
- "miniprogram",
32
- "image2d",
33
- "image3d",
34
- "oi-contrib",
35
- "vislite",
36
- "d3",
37
- "zxl20070701",
38
- "three",
39
- "echarts",
40
- "datav",
41
- "webgpu",
42
- "layout",
43
- "algorithm"
44
- ],
45
- "author": {
46
- "name": "zxl20070701",
47
- "url": "https://zxl20070701.github.io/notebook/home.html"
48
- },
49
- "license": "MIT",
50
- "bugs": {
51
- "url": "https://github.com/oi-contrib/VISLite/issues"
52
- },
53
- "homepage": "https://oi-contrib.github.io/VISLite",
54
- "devDependencies": {
55
- "@oipage/cli": "^0.2.1",
56
- "@rollup/plugin-commonjs": "^25.0.7",
57
- "@rollup/plugin-node-resolve": "^15.2.3",
58
- "@rollup/plugin-typescript": "^11.1.0",
59
- "@types/jasmine": "^4.3.1",
60
- "@typescript-eslint/eslint-plugin": "^8.62.1",
61
- "@typescript-eslint/parser": "^8.62.1",
62
- "eslint": "^8.57.0",
63
- "karma": "^6.3.10",
64
- "karma-chrome-launcher": "^3.1.0",
65
- "karma-jasmine": "^4.0.1",
66
- "karma-webpack": "^5.0.0",
67
- "rollup": "^3.20.6",
68
- "terser": "^5.17.1",
69
- "ts-loader": "^9.2.8",
70
- "tslib": "^2.5.0",
71
- "typescript": "^4.6.2",
72
- "webpack": "^5.108.0",
73
- "webpack-cli": "^5.1.4",
74
- "webpack-dev-server": "^6.0.0"
75
- },
76
- "dependencies": {
77
- "oipage": "^2.1.0"
78
- }
79
- }
1
+ {
2
+ "name": "vislite",
3
+ "version": "1.12.0",
4
+ "description": "灵活、快速、简单的数据可视化交互式跨端前端库",
5
+ "main": "./lib/index.umd.min.js",
6
+ "typings": "./types/index.d.ts",
7
+ "unpkg": "./lib/index.umd.min.js",
8
+ "jsdelivr": "./lib/index.umd.min.js",
9
+ "sideEffects": false,
10
+ "scripts": {
11
+ "dev": "webpack serve --config ./build/webpack.config.js",
12
+ "build": "oipage-cli disk -d ./lib && node ./build/pkg.js",
13
+ "test": "karma start ./build/karma.config.js",
14
+ "lint": "eslint src/**/*.ts --fix"
15
+ },
16
+ "bin": {
17
+ "vislite-cli": "bin/run"
18
+ },
19
+ "miniprogram": ".",
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/oi-contrib/VISLite.git"
23
+ },
24
+ "keywords": [
25
+ "svg",
26
+ "webgl",
27
+ "typescript",
28
+ "canvas",
29
+ "vue",
30
+ "uniapp",
31
+ "miniprogram",
32
+ "image2d",
33
+ "image3d",
34
+ "oi-contrib",
35
+ "vislite",
36
+ "d3",
37
+ "zxl20070701",
38
+ "three",
39
+ "echarts",
40
+ "datav",
41
+ "webgpu",
42
+ "layout",
43
+ "algorithm"
44
+ ],
45
+ "author": {
46
+ "name": "zxl20070701",
47
+ "url": "https://zxl20070701.github.io/notebook/home.html"
48
+ },
49
+ "license": "MIT",
50
+ "bugs": {
51
+ "url": "https://github.com/oi-contrib/VISLite/issues"
52
+ },
53
+ "homepage": "https://oi-contrib.github.io/VISLite",
54
+ "devDependencies": {
55
+ "@oipage/cli": "^0.2.1",
56
+ "@rollup/plugin-commonjs": "^25.0.7",
57
+ "@rollup/plugin-node-resolve": "^15.2.3",
58
+ "@rollup/plugin-typescript": "^11.1.0",
59
+ "@types/jasmine": "^4.3.1",
60
+ "@typescript-eslint/eslint-plugin": "^8.62.1",
61
+ "@typescript-eslint/parser": "^8.62.1",
62
+ "eslint": "^8.57.0",
63
+ "karma": "^6.3.10",
64
+ "karma-chrome-launcher": "^3.1.0",
65
+ "karma-jasmine": "^4.0.1",
66
+ "karma-webpack": "^5.0.0",
67
+ "rollup": "^3.20.6",
68
+ "terser": "^5.17.1",
69
+ "ts-loader": "^9.2.8",
70
+ "tslib": "^2.5.0",
71
+ "typescript": "^4.6.2",
72
+ "webpack": "^5.108.0",
73
+ "webpack-cli": "^5.1.4",
74
+ "webpack-dev-server": "^6.0.0"
75
+ },
76
+ "dependencies": {
77
+ "oipage": "^2.1.0"
78
+ }
79
+ }
@@ -1,118 +1,118 @@
1
- # BarLayout 柱状图布局
2
-
3
- BarLayout 用于绘制柱状图/条形图。
4
-
5
- ## 引入
6
-
7
- ```js
8
- import { BarLayout } from 'vislite';
9
- ```
10
-
11
- ## 初始化
12
-
13
- ```js
14
- var barLayout = new BarLayout();
15
- ```
16
-
17
- ## setOption 设置布局行为
18
-
19
- ```js
20
- barLayout.setOption({
21
- x: 50, // 左上角x坐标
22
- y: 350, // 左上角y坐标
23
- width: 400, // 宽度
24
- height: 300, // 高度
25
- category: 'xAxis', // 分类轴:xAxis|yAxis
26
- duration: 200 // 动画时长(ms)
27
- });
28
- ```
29
-
30
- ### category 方向
31
-
32
- - **xAxis**: 分类在x轴,柱状图从下往上
33
- - **yAxis**: 分类在y轴,条形图从左往右
34
-
35
- ## use 坐标计算
36
-
37
- ### 一维数据
38
-
39
- ```js
40
- var data = {
41
- category: ['HTML', 'CSS', 'JS'],
42
- data: [30, 20, 50]
43
- };
44
- var bar = barLayout.use(data);
45
- ```
46
-
47
- ### 二维数据(分组柱状图)
48
-
49
- ```js
50
- var data = {
51
- category: ['HTML', 'CSS', 'JS'],
52
- value: [
53
- { name: '男生', data: [30, 20, 50] },
54
- { name: '女生', data: [25, 30, 40] }
55
- ]
56
- };
57
- var bar = barLayout.use(data);
58
- ```
59
-
60
- ### 返回值 bar 结构
61
-
62
- ```js
63
- {
64
- coordinate: {
65
- x, y, width, height, // 坐标系位置
66
- xAxis: { type: 'category' | 'value', data: [...] },
67
- yAxis: { type: 'category' | 'value', data: [...] }
68
- },
69
- node: [
70
- {
71
- name: '分组名称', // 分组柱状图时有效
72
- bar: [
73
- {
74
- x, y, width, height, // 矩形位置
75
- value: 数值
76
- }
77
- ]
78
- }
79
- ]
80
- }
81
- ```
82
-
83
- ## 使用示例
84
-
85
- ```js
86
- var barLayout = new BarLayout();
87
-
88
- barLayout.setOption({
89
- x: 50,
90
- y: 350,
91
- width: 400,
92
- height: 300,
93
- category: 'xAxis'
94
- });
95
-
96
- var data = {
97
- category: ['HTML', 'CSS', 'JavaScript'],
98
- data: [30, 20, 50]
99
- };
100
-
101
- var bar = barLayout.use(data);
102
-
103
- // 绘制坐标系
104
- painter.config({ strokeStyle: 'black' })
105
- .beginPath()
106
- .moveTo(bar.coordinate.x, bar.coordinate.y)
107
- .lineTo(bar.coordinate.x + bar.coordinate.width, bar.coordinate.y)
108
- .lineTo(bar.coordinate.x + bar.coordinate.width, bar.coordinate.y - bar.coordinate.height)
109
- .stroke();
110
-
111
- // 绘制柱状图
112
- var colors = ['red', 'green', 'blue'];
113
- for (var i = 0; i < bar.node[0].bar.length; i++) {
114
- var rect = bar.node[0].bar[i];
115
- painter.config({ fillStyle: colors[i] })
116
- .fillRect(rect.x, rect.y, rect.width, rect.height);
117
- }
1
+ # BarLayout 柱状图布局
2
+
3
+ BarLayout 用于绘制柱状图/条形图。
4
+
5
+ ## 引入
6
+
7
+ ```js
8
+ import { BarLayout } from 'vislite';
9
+ ```
10
+
11
+ ## 初始化
12
+
13
+ ```js
14
+ var barLayout = new BarLayout();
15
+ ```
16
+
17
+ ## setOption 设置布局行为
18
+
19
+ ```js
20
+ barLayout.setOption({
21
+ x: 50, // 左上角x坐标
22
+ y: 350, // 左上角y坐标
23
+ width: 400, // 宽度
24
+ height: 300, // 高度
25
+ category: 'xAxis', // 分类轴:xAxis|yAxis
26
+ duration: 200 // 动画时长(ms)
27
+ });
28
+ ```
29
+
30
+ ### category 方向
31
+
32
+ - **xAxis**: 分类在x轴,柱状图从下往上
33
+ - **yAxis**: 分类在y轴,条形图从左往右
34
+
35
+ ## use 坐标计算
36
+
37
+ ### 一维数据
38
+
39
+ ```js
40
+ var data = {
41
+ category: ['HTML', 'CSS', 'JS'],
42
+ data: [30, 20, 50]
43
+ };
44
+ var bar = barLayout.use(data);
45
+ ```
46
+
47
+ ### 二维数据(分组柱状图)
48
+
49
+ ```js
50
+ var data = {
51
+ category: ['HTML', 'CSS', 'JS'],
52
+ value: [
53
+ { name: '男生', data: [30, 20, 50] },
54
+ { name: '女生', data: [25, 30, 40] }
55
+ ]
56
+ };
57
+ var bar = barLayout.use(data);
58
+ ```
59
+
60
+ ### 返回值 bar 结构
61
+
62
+ ```js
63
+ {
64
+ coordinate: {
65
+ x, y, width, height, // 坐标系位置
66
+ xAxis: { type: 'category' | 'value', data: [...] },
67
+ yAxis: { type: 'category' | 'value', data: [...] }
68
+ },
69
+ node: [
70
+ {
71
+ name: '分组名称', // 分组柱状图时有效
72
+ bar: [
73
+ {
74
+ x, y, width, height, // 矩形位置
75
+ value: 数值
76
+ }
77
+ ]
78
+ }
79
+ ]
80
+ }
81
+ ```
82
+
83
+ ## 使用示例
84
+
85
+ ```js
86
+ var barLayout = new BarLayout();
87
+
88
+ barLayout.setOption({
89
+ x: 50,
90
+ y: 350,
91
+ width: 400,
92
+ height: 300,
93
+ category: 'xAxis'
94
+ });
95
+
96
+ var data = {
97
+ category: ['HTML', 'CSS', 'JavaScript'],
98
+ data: [30, 20, 50]
99
+ };
100
+
101
+ var bar = barLayout.use(data);
102
+
103
+ // 绘制坐标系
104
+ painter.config({ strokeStyle: 'black' })
105
+ .beginPath()
106
+ .moveTo(bar.coordinate.x, bar.coordinate.y)
107
+ .lineTo(bar.coordinate.x + bar.coordinate.width, bar.coordinate.y)
108
+ .lineTo(bar.coordinate.x + bar.coordinate.width, bar.coordinate.y - bar.coordinate.height)
109
+ .stroke();
110
+
111
+ // 绘制柱状图
112
+ var colors = ['red', 'green', 'blue'];
113
+ for (var i = 0; i < bar.node[0].bar.length; i++) {
114
+ var rect = bar.node[0].bar[i];
115
+ painter.config({ fillStyle: colors[i] })
116
+ .fillRect(rect.x, rect.y, rect.width, rect.height);
117
+ }
118
118
  ```