jupyter-ijavascript-utils 1.5.0 → 1.6.1
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.
- package/DOCS.md +21 -2
- package/README.md +27 -5
- package/docResources/img/Table_StyleCell.png +0 -0
- package/docResources/img/Table_StyleHeader.png +0 -0
- package/docResources/img/Table_StyleRow.png +0 -0
- package/docResources/img/Table_StyleTable.png +0 -0
- package/docResources/img/noiseVisualization_axisChart.svg +1 -0
- package/docResources/img/noiseVisualization_dotChart.svg +1 -0
- package/docResources/img/noiseVisualization_vlOrig.svg +1 -0
- package/docResources/img/noiseVisualization_vlSimple.svg +1 -0
- package/docResources/img/noiseVisualization_wavesDark.svg +1 -0
- package/docResources/img/noiseVisualization_wavesLight.svg +1 -0
- package/docResources/img/svgAnimation1.gif +0 -0
- package/docResources/img/svgAnimation2Dark.gif +0 -0
- package/docResources/img/svgAnimation2Light.gif +0 -0
- package/docResources/img/svgEmbed1.png +0 -0
- package/docResources/img/svgP5Example.png +0 -0
- package/docResources/img/svgRender_1.svg +1 -0
- package/docResources/img/svgRender_2.svg +1 -0
- package/docResources/img/svgRender_3.svg +1 -0
- package/docResources/notebooks/ex_NoiseVisualization.ipynb +1878 -0
- package/docResources/notebooks/ex_NoiseVisualizationExport.ipynb +1405 -0
- package/docResources/notebooks/ex_VegaLite1.ipynb +68 -110
- package/package.json +4 -1
- package/src/TableGenerator.js +78 -3
- package/src/__testHelper__/ijsContext.js +5 -1
- package/src/__tests__/TableGenerator__spec.js +1 -1
- package/src/__tests__/ijs_htmlScript__spec.js +170 -28
- package/src/__tests__/leaflet__spec.js +5 -0
- package/src/__tests__/svg__spec.js +185 -0
- package/src/__tests__/svg_utilityFunctions__spec.js +126 -0
- package/src/_types/global.js +1 -0
- package/src/ijs.js +25 -4
- package/src/index.js +3 -0
- package/src/leaflet.js +4 -0
- package/src/svg.js +374 -0
- package/src/svg_utilityFunctions.js +148 -0
- package/src/vega.js +9 -1
- package/tutorials/noiseVisualization.markdown +1231 -0
- package/tutorials/tutorials.json +3 -0
package/DOCS.md
CHANGED
|
@@ -19,6 +19,7 @@ See the [#Installation section for requirements and installation](#install)
|
|
|
19
19
|
| {@link module:object} | Massage and manipulate Objects or Collections of Objects. |
|
|
20
20
|
| {@link module:plantuml} | Render <a href="https://plantuml.com">PlantUML</a> within Jupyter results. |
|
|
21
21
|
| {@link module:set} | Functional Utilities for managing JavaScript Sets - allowing for chaining. |
|
|
22
|
+
| {@link module:svg} | Programmatically create SVGs (either jupyter side for exports, or client side for animations) |
|
|
22
23
|
| {@link module:vega} | Generate Charts / Graphs / Maps with <a href="https://vega.github.io/vega/">Vega</a> and <a href="https://vega.github.io/vega-lite/">Vega-Lite</a> |
|
|
23
24
|
| {@link SourceMap} | SubClass of Maps - generated by the {@link module:group} and reducible with {@link module:aggregate}|
|
|
24
25
|
| {@link TableGenerator} | Class that can filter, sorts, manage and then generate HTML, CSV, Markdown, etc. |
|
|
@@ -27,8 +28,9 @@ See the [#Installation section for requirements and installation](#install)
|
|
|
27
28
|
|
|
28
29
|
## What's New
|
|
29
30
|
|
|
30
|
-
* 1.
|
|
31
|
-
* 1.
|
|
31
|
+
* 1.6 - add SVG support for rendering SVGs and animations with {@link module:svg}.
|
|
32
|
+
* 1.5 - Add LaTeX / KaTeX support with {@link module:latex} for rendering Math formulas and PlantUML support for Diagrams
|
|
33
|
+
* 1.4 - Add in vega embed, vega mimetypes with {@link module:vega} and example choropleth tutorial
|
|
32
34
|
* 1.3 - Add {@link module:leaflet|Leaflet} for Maps, allow Vega to use {@link module:vega.svgFromSpec|explicit specs} (so [Examples can be copied and pasted](https://vega.github.io/vega-lite/examples/), and add in {@link module:ijs.htmlScript|htmlScripts}
|
|
33
35
|
|
|
34
36
|
-------
|
|
@@ -174,6 +176,10 @@ utils.vega.svg((vl) => vl.markPoint()
|
|
|
174
176
|
|
|
175
177
|

|
|
176
178
|
|
|
179
|
+
and more from {@link module:vega}
|
|
180
|
+
|
|
181
|
+

|
|
182
|
+
|
|
177
183
|
## Create a Data Driven Map
|
|
178
184
|
|
|
179
185
|
(See the {@tutorial vega_choroplethShort} tutorial for more)
|
|
@@ -186,6 +192,12 @@ utils.vega.svg((vl) => vl.markPoint()
|
|
|
186
192
|
|
|
187
193
|

|
|
188
194
|
|
|
195
|
+
## Generate Text Driven Diagrams
|
|
196
|
+
|
|
197
|
+
({@link module:plantuml|See the PlantUML module for more})
|
|
198
|
+
|
|
199
|
+

|
|
200
|
+
|
|
189
201
|
## Render Other Libraries
|
|
190
202
|
|
|
191
203
|
(See the {@tutorial htmlScript} tutorial for more)
|
|
@@ -202,6 +214,13 @@ utils.ijs.htmlScript({
|
|
|
202
214
|
|
|
203
215
|

|
|
204
216
|
|
|
217
|
+
## Create Animations
|
|
218
|
+
|
|
219
|
+
(See the {@tutorial noiseVisualization} tutorial or {@link module:svg|svg module} for more)
|
|
220
|
+
|
|
221
|
+

|
|
222
|
+

|
|
223
|
+
|
|
205
224
|
<a name="install"> </a>
|
|
206
225
|
# Install
|
|
207
226
|
|
package/README.md
CHANGED
|
@@ -18,6 +18,7 @@ See documentation at: [https://jupyter-ijavascript-utils.onrender.com/](https://
|
|
|
18
18
|
|
|
19
19
|
# What's New
|
|
20
20
|
|
|
21
|
+
* 1.6 - add SVG support for rendering SVGs and animations
|
|
21
22
|
* 1.5 - Add Latex support for rendering Math formulas and PlantUML support for Diagrams
|
|
22
23
|
* 1.4 - Add in vega embed, vega mimetypes and example choropleth tutorial
|
|
23
24
|
* 1.3 - Add Leaflet for Maps, allow Vega to use explicit specs (so [Examples can be copied and pasted](https://vega.github.io/vega-lite/examples/), and add in htmlScripts
|
|
@@ -26,9 +27,9 @@ See documentation at: [https://jupyter-ijavascript-utils.onrender.com/](https://
|
|
|
26
27
|
|
|
27
28
|
## Get Sample Data
|
|
28
29
|
|
|
29
|
-
(
|
|
30
|
+
([See the DataSets module for more on sample datasets](https://jupyter-ijavascript-utils.onrender.com/module-datasets.html))
|
|
30
31
|
|
|
31
|
-
(
|
|
32
|
+
([See the ijs module for helpers to use async/await](https://jupyter-ijavascript-utils.onrender.com/module-ijs.html#.await))
|
|
32
33
|
|
|
33
34
|
```
|
|
34
35
|
//-- get the data
|
|
@@ -43,7 +44,7 @@ utils.ijs.await(async ($$, console) => {
|
|
|
43
44
|
|
|
44
45
|
Then we can group using a process similar to d3js
|
|
45
46
|
|
|
46
|
-
(
|
|
47
|
+
([See the Group Module for more on grouping](https://jupyter-ijavascript-utils.onrender.com/module-group.html))
|
|
47
48
|
|
|
48
49
|
```
|
|
49
50
|
//-- get the min max of the types of barley
|
|
@@ -91,7 +92,7 @@ barleyByVarietyYear = utils.group.by(barley, 'variety', 'year')
|
|
|
91
92
|
|
|
92
93
|
## Aggregating
|
|
93
94
|
|
|
94
|
-
(
|
|
95
|
+
([See the Aggregation module for more](https://jupyter-ijavascript-utils.onrender.com/module-aggregate.html))
|
|
95
96
|
|
|
96
97
|
```
|
|
97
98
|
utils.group.by(barley, 'variety', 'site')
|
|
@@ -132,7 +133,7 @@ returns
|
|
|
132
133
|
|
|
133
134
|
## Render as a Table
|
|
134
135
|
|
|
135
|
-
(
|
|
136
|
+
([See the TableGenerator class for more](https://jupyter-ijavascript-utils.onrender.com/TableGenerator.html))
|
|
136
137
|
|
|
137
138
|
```
|
|
138
139
|
new utils.TableGenerator(barley)
|
|
@@ -161,18 +162,32 @@ utils.vega.svg((vl) => vl.markPoint()
|
|
|
161
162
|
|
|
162
163
|
## Render Charts
|
|
163
164
|
|
|
165
|
+
([See the vega module for more](https://jupyter-ijavascript-utils.onrender.com/module-vega.html))
|
|
166
|
+
|
|
164
167
|

|
|
165
168
|
|
|
166
169
|
## Create a Data Driven Map
|
|
167
170
|
|
|
171
|
+
([See the Data Driven Maps Tutorial for More](https://jupyter-ijavascript-utils.onrender.com/tutorial-vega_choroplethLong.html))
|
|
172
|
+
|
|
168
173
|

|
|
169
174
|
|
|
170
175
|
## Render Maps
|
|
171
176
|
|
|
177
|
+
([See the Leaflet module for more](https://jupyter-ijavascript-utils.onrender.com/module-leaflet.html))
|
|
178
|
+
|
|
172
179
|

|
|
173
180
|
|
|
181
|
+
## Generate Text Driven Diagrams
|
|
182
|
+
|
|
183
|
+
([See the PlantUML module for more](https://jupyter-ijavascript-utils.onrender.com/module-plantuml.html))
|
|
184
|
+
|
|
185
|
+

|
|
186
|
+
|
|
174
187
|
## Render Other Libraries
|
|
175
188
|
|
|
189
|
+
([See the Html Script Tutorial for more](https://jupyter-ijavascript-utils.onrender.com/tutorial-htmlScript.html))
|
|
190
|
+
|
|
176
191
|
```
|
|
177
192
|
utils.ijs.htmlScript({
|
|
178
193
|
scripts: ['https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js'],
|
|
@@ -185,6 +200,13 @@ utils.ijs.htmlScript({
|
|
|
185
200
|
|
|
186
201
|

|
|
187
202
|
|
|
203
|
+
## Create Animations
|
|
204
|
+
|
|
205
|
+
(See the [Noise Visualization Tutorial](https://jupyter-ijavascript-utils.onrender.com/tutorial-noiseVisualization.html) or [SVG Module](file:///Users/proth/Documents/notebooks/jupyter-ijavascript-utils/docs/module-svg.html) for more)
|
|
206
|
+
|
|
207
|
+

|
|
208
|
+

|
|
209
|
+
|
|
188
210
|
# License
|
|
189
211
|
|
|
190
212
|
See [License](https://jupyter-ijavascript-utils.onrender.com/LICENSE) (MIT License).
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" class="marks" width="330" height="242" viewBox="0 0 330 242"><rect width="330" height="242" fill="white"/><g fill="none" stroke-miterlimit="10" transform="translate(59,5)"><g class="mark-group role-frame root" role="graphics-object" aria-roledescription="group mark container"><g transform="translate(0,0)"><path class="background" aria-hidden="true" d="M0.5,0.5h200v200h-200Z" stroke="#ddd"/><g><g class="mark-group role-axis" aria-hidden="true"><g transform="translate(0.5,200.5)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-rule role-axis-grid" pointer-events="none"><line transform="translate(0,-200)" x2="0" y2="200" stroke="#ddd" stroke-width="1" opacity="1"/><line transform="translate(33,-200)" x2="0" y2="200" stroke="#ddd" stroke-width="1" opacity="1"/><line transform="translate(67,-200)" x2="0" y2="200" stroke="#ddd" stroke-width="1" opacity="1"/><line transform="translate(100,-200)" x2="0" y2="200" stroke="#ddd" stroke-width="1" opacity="1"/><line transform="translate(133,-200)" x2="0" y2="200" stroke="#ddd" stroke-width="1" opacity="1"/><line transform="translate(167,-200)" x2="0" y2="200" stroke="#ddd" stroke-width="1" opacity="1"/><line transform="translate(200,-200)" x2="0" y2="200" stroke="#ddd" stroke-width="1" opacity="1"/></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g><g class="mark-group role-axis" aria-hidden="true"><g transform="translate(0.5,0.5)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-rule role-axis-grid" pointer-events="none"><line transform="translate(0,200)" x2="200" y2="0" stroke="#ddd" stroke-width="1" opacity="1"/><line transform="translate(0,144)" x2="200" y2="0" stroke="#ddd" stroke-width="1" opacity="1"/><line transform="translate(0,89)" x2="200" y2="0" stroke="#ddd" stroke-width="1" opacity="1"/><line transform="translate(0,33)" x2="200" y2="0" stroke="#ddd" stroke-width="1" opacity="1"/></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g><g class="mark-group role-axis" role="graphics-symbol" aria-roledescription="axis" aria-label="X-axis titled 'index' for a linear scale with values from 0 to 30"><g transform="translate(0.5,200.5)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-rule role-axis-tick" pointer-events="none"><line transform="translate(0,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(33,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(67,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(100,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(133,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(167,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(200,0)" x2="0" y2="5" stroke="#888" stroke-width="1" opacity="1"/></g><g class="mark-text role-axis-label" pointer-events="none"><text text-anchor="start" transform="translate(0,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">0</text><text text-anchor="middle" transform="translate(33.33333333333333,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">5</text><text text-anchor="middle" transform="translate(66.66666666666666,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">10</text><text text-anchor="middle" transform="translate(100,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">15</text><text text-anchor="middle" transform="translate(133.33333333333331,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">20</text><text text-anchor="middle" transform="translate(166.66666666666669,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">25</text><text text-anchor="end" transform="translate(200,15)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">30</text></g><g class="mark-rule role-axis-domain" pointer-events="none"><line transform="translate(0,0)" x2="200" y2="0" stroke="#888" stroke-width="1" opacity="1"/></g><g class="mark-text role-axis-title" pointer-events="none"><text text-anchor="middle" transform="translate(100,30)" font-family="sans-serif" font-size="11px" font-weight="bold" fill="#000" opacity="1">index</text></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g><g class="mark-group role-axis" role="graphics-symbol" aria-roledescription="axis" aria-label="Y-axis titled 'Value from Noise' for a linear scale with values from −1.0 to 0.8"><g transform="translate(0.5,0.5)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-rule role-axis-tick" pointer-events="none"><line transform="translate(0,200)" x2="-5" y2="0" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(0,144)" x2="-5" y2="0" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(0,89)" x2="-5" y2="0" stroke="#888" stroke-width="1" opacity="1"/><line transform="translate(0,33)" x2="-5" y2="0" stroke="#888" stroke-width="1" opacity="1"/></g><g class="mark-text role-axis-label" pointer-events="none"><text text-anchor="end" transform="translate(-7,203)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">−1.0</text><text text-anchor="end" transform="translate(-7,147.44444444444443)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">−0.5</text><text text-anchor="end" transform="translate(-7,91.88888888888889)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">0.0</text><text text-anchor="end" transform="translate(-7,36.33333333333335)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">0.5</text></g><g class="mark-rule role-axis-domain" pointer-events="none"><line transform="translate(0,200)" x2="0" y2="-200" stroke="#888" stroke-width="1" opacity="1"/></g><g class="mark-text role-axis-title" pointer-events="none"><text text-anchor="middle" transform="translate(-43,100) rotate(-90) translate(0,-2)" font-family="sans-serif" font-size="11px" font-weight="bold" fill="#000" opacity="1">Value from Noise</text></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g><g class="mark-line role-mark child__layer_xAmt_marks" role="graphics-object" aria-roledescription="line mark container"><path aria-label="index: 0; Value from Noise: 0" role="graphics-symbol" aria-roledescription="line mark" d="M0,88.88888888888889L6.666666666666667,131.97283279012345L13.333333333333334,157.62248050480108L20,149.63132800000002L26.666666666666668,107.43884062551443L33.33333333333333,52.52551440329223L40,13.736113777777792L46.666666666666664,7.127009668038453L53.333333333333336,26.967967956104278L60,59.11916444444447L66.66666666666666,88.88888888888889L73.33333333333333,102.85026567901237L80,97.03926044444442L86.66666666666667,79.57786745679014L93.33333333333333,64.89207150617288L100,62.68518518518525L106.66666666666667,76.6475833123L113.33333333333333,105.83763605304073L120,140.6095834074074L126.66666666666666,166.19478124919976L133.33333333333331,173.34439871970736L140,159.43276088888885L146.66666666666666,130.20281649748512L153.33333333333334,97.99874187471414L160,75.21871407407403L166.66666666666669,67.99364426154551L173.33333333333334,73.54532333973481L180,82.93127585185186L186.66666666666666,88.18855836854138L193.33333333333334,88.88888490900777" stroke="#4c78a8" stroke-width="2"/></g><g class="mark-line role-mark child__layer_yAmt_marks" role="graphics-object" aria-roledescription="line mark container"><path aria-label="index: 0; Value from Noise: 0" role="graphics-symbol" aria-roledescription="line mark" d="M0,88.88888888888889L6.666666666666667,45.80493468678555L13.333333333333334,18.254336146319194L20,10.736875851851835L26.666666666666668,20.099101117512607L33.33333333333333,41.138088705989986L40,68.04933451851853L46.666666666666664,97.62553447828077L53.333333333333336,130.38376006584363L60,162.5218512592592L66.66666666666666,185.33086419753076L73.33333333333333,192.10184107544578L80,180.42268207407398L86.66666666666667,153.53310942112478L93.33333333333333,122.6481330919066L100,97.95925925925926L106.66666666666667,82.36493645724734L113.33333333333333,75.76030093461361L120,78.49842725925926L126.66666666666666,85.02727135985369L133.33333333333331,88.88888888888889L140,89.35225244444445L146.66666666666666,88.94228669044352L153.33333333333334,88.93078986739826L160,89.11913481481481L166.66666666666669,89.24435299497028L173.33333333333334,89.1221688888889L180,88.9349688888889L186.66666666666666,88.88892444444446L193.33333333333334,88.88888888888889" stroke="#f58518" stroke-width="2"/></g><g class="mark-line role-mark child__layer_zAmt_marks" role="graphics-object" aria-roledescription="line mark container"><path aria-label="index: 0; Value from Noise: 0" role="graphics-symbol" aria-roledescription="line mark" d="M0,88.88888888888889L6.666666666666667,88.88888490900777L13.333333333333334,88.18852992409694L20,82.89901985185185L26.666666666666668,73.4053553397348L33.33333333333333,67.81614083219023L40,75.13450429629631L46.666666666666664,97.9974549391861L53.333333333333336,130.0247354586191L60,156.34367051851848L66.66666666666666,161.3579332418838L73.33333333333333,140.3121628678555L80,102.3498524444444L86.66666666666667,66.36963214631922L93.33333333333333,51.28484456881577L100,61.737037037037034L106.66666666666667,79.76336700868774L113.33333333333333,81.16487408139004L120,61.6198186666667L126.66666666666666,33.546559985368084L133.33333333333331,16.419844535893937L140,21.897470814814834L146.66666666666666,47.80675704801099L153.33333333333334,79.76608093644269L160,102.55056829629635L166.66666666666669,109.78390489254686L173.33333333333334,104.23245443804299L180,94.84650192592592L186.66666666666666,89.5892194092364L193.33333333333334,88.88889286877" stroke="#e45756" stroke-width="2"/></g><g class="mark-group role-legend" role="graphics-symbol" aria-roledescription="legend" aria-label="Symbol legend for stroke color with 3 values: xAmt, yAmt, zAmt"><g transform="translate(218,0)"><path class="background" aria-hidden="true" d="M0,0h48v37h-48Z" pointer-events="none"/><g><g class="mark-group role-legend-entry"><g transform="translate(0,0)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-group role-scope" role="graphics-object" aria-roledescription="group mark container"><g transform="translate(0,0)"><path class="background" aria-hidden="true" d="M0,0h48v11h-48Z" pointer-events="none" opacity="1"/><g><g class="mark-symbol role-legend-symbol" pointer-events="none"><path transform="translate(6,6)" d="M-5,0L5,0" stroke="#4c78a8" stroke-width="1.5" opacity="1"/></g><g class="mark-text role-legend-label" pointer-events="none"><text text-anchor="start" transform="translate(16,9)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">xAmt</text></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g><g transform="translate(0,13)"><path class="background" aria-hidden="true" d="M0,0h48v11h-48Z" pointer-events="none" opacity="1"/><g><g class="mark-symbol role-legend-symbol" pointer-events="none"><path transform="translate(6,6)" d="M-5,0L5,0" stroke="#f58518" stroke-width="1.5" opacity="1"/></g><g class="mark-text role-legend-label" pointer-events="none"><text text-anchor="start" transform="translate(16,9)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">yAmt</text></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g><g transform="translate(0,26)"><path class="background" aria-hidden="true" d="M0,0h48v11h-48Z" pointer-events="none" opacity="1"/><g><g class="mark-symbol role-legend-symbol" pointer-events="none"><path transform="translate(6,6)" d="M-5,0L5,0" stroke="#e45756" stroke-width="1.5" opacity="1"/></g><g class="mark-text role-legend-label" pointer-events="none"><text text-anchor="start" transform="translate(16,9)" font-family="sans-serif" font-size="10px" fill="#000" opacity="1">zAmt</text></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g></g><path class="foreground" aria-hidden="true" d="" display="none"/></g></g></g></svg>
|