visualifyjs 2.5.3 → 3.0.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.
- package/.claude/mem/TIMELINE.md +36 -0
- package/.claude/mem/notes/2026-02-11-3d-visualization-docs-fix-external-script-solution.md +24 -0
- package/.claude/mem/notes/2026-02-11-3d-visualization-docs-fix-session-summary.md +43 -0
- package/.claude/mem/notes/2026-02-11-cli-fix-editor-command-alias.md +26 -0
- package/.claude/mem/notes/2026-02-11-phase-3-developer-experience-completed.md +51 -0
- package/.claude/mem/notes/2026-02-11-phase-4-web-workers-implementation-complete.md +59 -0
- package/.claude/mem/notes/2026-02-11-visualify-phase-2-3d-visualization-complete.md +50 -0
- package/.claude/mem/notes/2026-02-11-visualify-phase-2-committed-ready-for-phase-3.md +33 -0
- package/.claude/mem/notes/2026-02-11-visualify-phase-3-complete-developer-experience.md +52 -0
- package/.claude/mem/notes/2026-02-11-visualify-repository-cleanup-complete.md +28 -0
- package/.claude/mem/notes/2026-02-18-codebase-cleanup-docsify-plugin-documentation.md +37 -0
- package/.claude/mem/notes/2026-02-19-css-grid-layout-fix-displaycontents-on-vcontroller.md +18 -0
- package/.claude/mem/notes/2026-02-19-docsify-plugin-fixes-latex-and-visualify-code-bloc.md +26 -0
- package/.claude/mem/notes/2026-02-19-page-mode-docs-update-decisions.md +23 -0
- package/.claude/mem/notes/2026-02-19-react-context-infinite-re-render-loop-fix-pattern.md +31 -0
- package/.claude/mem/notes/2026-02-19-version-300-bump-and-build-fixes.md +32 -0
- package/.claude/mem/notes/2026-02-19-visualify-build-deployment-architecture-bug-fixes.md +25 -0
- package/.claude/mem/notes/2026-02-19-visualify-dist-iife-self-contained-build-config.md +30 -0
- package/.claude/mem/notes/2026-02-19-visualify-infinite-loop-i18n-fixes.md +31 -0
- package/.claude/mem/notes/2026-02-19-visualify-v3-bundle-splitting-docs-restructuring.md +32 -0
- package/.claude/mem/notes/2026-02-20-bundle-externalization-final-architecture.md +29 -0
- package/.claude/mem/notes/2026-02-20-chromium-page-fix-unstable-keys-and-double-event-b.md +27 -0
- package/.claude/mem/notes/2026-02-20-console-cleanup-bundle-optimization-commit.md +20 -0
- package/.claude/mem/notes/2026-02-20-dotbio-dot-plot-fix-useeffect-dependency.md +21 -0
- package/.claude/mem/notes/2026-02-20-public-folder-cleanup-and-readme-rewrite.md +25 -0
- package/.claude/mem/notes/2026-02-20-v300-release-and-beta-channel-strategy.md +29 -0
- package/.claude/mem/notes/2026-02-20-visium-background-image-unknown-legend-fix.md +19 -0
- package/.claude/mem/notes/2026-02-20-visualify-cdn-loader-bundle-externalization.md +34 -0
- package/.claude/mem/sessions/session-2026-02-20-031524.md +54 -0
- package/.claude/settings.local.json +21 -0
- package/.github/workflows/static.yml.bak +51 -51
- package/.sisyphus/boulder.json +65 -0
- package/.sisyphus/plans/phase-4-advanced-optimizations.md +217 -0
- package/LICENSE +674 -674
- package/README.md +94 -59
- package/config-overrides.js +31 -31
- package/dist/stats.html +4949 -0
- package/dist/visualify-3d.esm.js +1 -0
- package/dist/visualify-3d.js +1 -0
- package/dist/visualify-core.esm.js +1 -0
- package/dist/visualify-core.js +1 -0
- package/dist/visualify-docs.esm.js +1 -0
- package/dist/visualify-docs.js +1 -0
- package/dist/visualify-loader.js +1 -0
- package/dist/visualify-pages.esm.js +1 -0
- package/dist/visualify-pages.js +1 -0
- package/dist/visualify-portal.esm.js +1 -0
- package/dist/visualify-portal.js +1 -0
- package/dist/visualify-shared.js +26571 -0
- package/dist/visualify.js +1 -188
- package/docs/CHANGELOG.md +148 -0
- package/docs/cli/commands.md +513 -0
- package/docs/configuration/visualify-json.md +474 -0
- package/docs/docs/3d-visualization.md +374 -0
- package/docs/docs/CLI.md +303 -34
- package/docs/docs/README.md +65 -65
- package/docs/docs/Rechart/bar.md +190 -190
- package/docs/docs/Rechart/funnel.md +241 -193
- package/docs/docs/Rechart/line.md +355 -355
- package/docs/docs/Rechart/pie.md +225 -225
- package/docs/docs/Rechart/radar.md +253 -253
- package/docs/docs/Rechart/scatter.md +298 -0
- package/docs/docs/_404.md +51 -51
- package/docs/docs/_coverpage.md +11 -11
- package/docs/docs/_sidebar.md +54 -43
- package/docs/docs/components/dotBio.md +87 -34
- package/docs/docs/components/echart.md +171 -82
- package/docs/docs/components/html.md +61 -34
- package/docs/docs/components/macaron.md +156 -145
- package/docs/docs/components/markdown.md +42 -0
- package/docs/docs/components/more.md +183 -142
- package/docs/docs/components/plotly.md +132 -62
- package/docs/docs/components/scatterL.md +171 -70
- package/docs/docs/components/visium.md +112 -57
- package/docs/docs/configuration.md +121 -123
- package/docs/docs/deploy.md +31 -31
- package/docs/docs/docsify-plugin.md +655 -0
- package/docs/docs/hmr.md +165 -0
- package/docs/docs/i18n.md +332 -0
- package/docs/docs/log.md +30 -1
- package/docs/docs/more-pages.md +23 -23
- package/docs/docs/quickstart.md +148 -119
- package/docs/docs/rechart-attributes.md +74 -74
- package/docs/docs/rechart-basic-usage.md +160 -162
- package/docs/docs/theme.md +5 -5
- package/docs/docs/typescript.md +306 -0
- package/docs/docs/visual-editor.md +359 -0
- package/docs/index.html +85 -71
- package/docs/manifest.json +23 -23
- package/docs/migration/v3-migration.md +392 -0
- package/docs/static/css/fluff-stuff.css +169 -169
- package/docs/static/css/font-awesome.min.css +4 -4
- package/docs/static/css/visualify.css +6 -25
- package/docs/static/js/3d-viz-examples.js +181 -0
- package/docs/static/js/configuration.js +630 -448
- package/docs/static/js/visualify.js +1 -188
- package/package.json +106 -84
- package/rollup.config.mjs +766 -76
- package/src/_css/404.css +115 -115
- package/src/_css/App.css +37 -37
- package/src/_css/autoSuggestion.css +26 -26
- package/src/_css/circular-progress.css +32 -32
- package/src/_css/index.css +36 -36
- package/src/_css/modern.css +350 -25
- package/src/_media/corner.svg +8 -8
- package/src/_media/download.svg +3 -3
- package/src/_media/logo.svg +14 -14
- package/src/_test/App.test.js +15 -15
- package/src/_utils/reportWebVitals.js +13 -13
- package/src/a11y/README.md +177 -0
- package/src/a11y/aria-labels.js +339 -0
- package/src/a11y/color-contrast.js +535 -0
- package/src/a11y/index.js +197 -0
- package/src/a11y/keyboard-nav.js +523 -0
- package/src/a11y/styles.css +165 -0
- package/src/cli/commands/dev.js +214 -0
- package/src/cli/commands/docs.js +521 -0
- package/src/cli/commands/edit.js +379 -0
- package/src/cli/commands/init.js +213 -0
- package/src/cli/commands/portal.js +236 -0
- package/src/cli/dev-server.js +530 -0
- package/src/cli/hmr.js +456 -0
- package/src/cli/index.js +180 -0
- package/src/cli/utils/config.js +207 -0
- package/src/cli/utils/logger.js +241 -0
- package/src/config/defaults.ts +122 -0
- package/src/config/index.ts +72 -0
- package/src/config/loader.ts +478 -0
- package/src/config/schema.ts +227 -0
- package/src/config/validator.ts +337 -0
- package/src/core/appContext.js +34 -27
- package/src/core/components/Bar.js +383 -0
- package/src/core/components/Bar3D.js +473 -0
- package/src/core/components/LargeDatasetChart.js +296 -0
- package/src/core/components/Line3D.js +310 -0
- package/src/core/components/Scatter.js +392 -188
- package/src/core/components/Scatter3D.js +455 -0
- package/src/core/components/ScatterBio.js +601 -572
- package/src/core/components/Surface3D.js +326 -0
- package/src/core/components/ThreeCustom.js +648 -0
- package/src/core/components/ThreeScene.js +459 -0
- package/src/core/components/VisiumPlot.js +191 -165
- package/src/core/components/browser.js +42 -42
- package/src/core/components/dotplot.js +413 -413
- package/src/core/components/html.js +29 -29
- package/src/core/components/list.js +178 -178
- package/src/core/components/macaron.js +206 -201
- package/src/core/components/markdown.js +56 -56
- package/src/core/components/parser.scatterBio.js +582 -579
- package/src/core/components/ratio.js +82 -80
- package/src/core/components/scatterL.js +206 -173
- package/src/core/components/searchbar.js +156 -131
- package/src/core/components/selection.js +310 -193
- package/src/core/components/timeline.js +236 -281
- package/src/core/components/visium.js +114 -97
- package/src/core/data-processor.js +413 -0
- package/src/core/fetch/condfetch.js +82 -82
- package/src/core/fetch/fetch.js +92 -92
- package/src/core/fetch/json.js +29 -29
- package/src/core/fetch/vfetch.js +42 -42
- package/src/core/hmr-client.js +724 -0
- package/src/core/liveEditor.js +44 -44
- package/src/core/modules/codeEditorWithPreview.js +104 -104
- package/src/core/modules/echarts/common.js +20 -20
- package/src/core/modules/echarts/gl.js +228 -0
- package/src/core/modules/echarts/presetHandler.js +41 -41
- package/src/core/modules/echarts/presets/esodev.chromium.js +172 -172
- package/src/core/modules/echarts/presets/esodev.codex.js +130 -130
- package/src/core/modules/echarts/presets/esodev.visium.js +123 -123
- package/src/core/modules/echarts/presets/mmtrbc.js +186 -186
- package/src/core/modules/echarts.js +70 -71
- package/src/core/modules/echartsUtils.js +43 -43
- package/src/core/modules/echartswitcher.js +227 -152
- package/src/core/modules/replotly/presetHandler.js +24 -24
- package/src/core/modules/replotly/presets/minimum.js +18 -18
- package/src/core/modules/replotly/presets/mmtrbc.dot.js +114 -114
- package/src/core/modules/replotly/presets/mmtrbc.violin.js +100 -100
- package/src/core/modules/replotly.js +74 -71
- package/src/core/modules/threejs/Camera.js +373 -0
- package/src/core/modules/threejs/Lighting.js +459 -0
- package/src/core/modules/threejs/Renderer.js +364 -0
- package/src/core/modules/threejs/Scene.js +266 -0
- package/src/core/modules/threejs/index.js +155 -0
- package/src/core/pages/404.js +50 -50
- package/src/core/pages/error.js +27 -27
- package/src/core/pages/jsonPage.js +62 -62
- package/src/core/pages/loading.js +44 -44
- package/src/core/parser/echart.data.js +204 -183
- package/src/core/parser/echart.features.js +125 -125
- package/src/core/parser/echart.general.js +147 -143
- package/src/core/parser/echart.hilbert.js +57 -57
- package/src/core/parser/echart.parser.js +210 -210
- package/src/core/parser/echart.series.js +67 -67
- package/src/core/parser/echart.types.js +76 -76
- package/src/core/parser/plotly.config.js +10 -10
- package/src/core/parser/plotly.data.js +132 -132
- package/src/core/parser/plotly.layout.js +9 -9
- package/src/core/parser/plotly.violin.js +18 -18
- package/src/core/recharts.js +361 -62
- package/src/core/router/alias.js +49 -49
- package/src/core/router/jsonRouter.js +31 -31
- package/src/core/themes/modern.js +32 -32
- package/src/core/themes/themeSelector.js +33 -33
- package/src/core/visualify.js +213 -47
- package/src/core/widgets/circularProgress.js +23 -23
- package/src/core/widgets/controller.js +116 -83
- package/src/core/widgets/errorBoundary.js +36 -36
- package/src/core/widgets/footer.js +185 -177
- package/src/core/widgets/header.js +238 -234
- package/src/core/widgets/layout/Grid.js +31 -31
- package/src/core/widgets/layout.js +36 -36
- package/src/core/widgets/mapping.js +56 -42
- package/src/core/workers/data-worker.js +349 -0
- package/src/core/workers/worker-pool.js +396 -0
- package/src/docsify/bundle.js +215 -0
- package/src/docsify/markdown.js +271 -0
- package/src/docsify/plugin.js +268 -0
- package/src/editor/README.md +172 -0
- package/src/editor/components/ChartBuilder.jsx +341 -0
- package/src/editor/components/ChartTypeSidebar.jsx +91 -0
- package/src/editor/components/Editor.jsx +367 -0
- package/src/editor/components/Preview.jsx +446 -0
- package/src/editor/components/PropertyPanel.jsx +468 -0
- package/src/editor/components/StatusBar.jsx +85 -0
- package/src/editor/context/EditorContext.js +248 -0
- package/src/editor/hooks/useDebounce.js +32 -0
- package/src/editor/index.js +315 -0
- package/src/editor/styles/editor.css +637 -0
- package/src/editor/utils/chartValidator.js +263 -0
- package/src/entries/charts3d.js +70 -0
- package/src/entries/core.js +78 -0
- package/src/entries/docs.js +154 -0
- package/src/entries/pages.js +93 -0
- package/src/entries/portal.js +204 -0
- package/src/entries/shared.js +50 -0
- package/src/i18n/formatters.js +455 -0
- package/src/i18n/index.js +169 -0
- package/src/i18n/locales/ar.json +137 -0
- package/src/i18n/locales/de.json +137 -0
- package/src/i18n/locales/en.json +137 -0
- package/src/i18n/locales/es.json +137 -0
- package/src/i18n/locales/he.json +137 -0
- package/src/i18n/locales/zh.json +137 -0
- package/src/i18n/rtl.css +183 -0
- package/src/index.js +82 -62
- package/src/loader.js +103 -0
- package/src/setupTests.js +5 -5
- package/tsconfig.json +51 -0
- package/types/charts.d.ts +569 -0
- package/types/components.d.ts +441 -0
- package/types/config.d.ts +199 -0
- package/types/index.d.ts +353 -0
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
<script defers>
|
|
2
|
+
|
|
3
|
+
function rangeRandom(min, max, precision) {
|
|
4
|
+
return (Math.random() * (max - min) + min).toFixed(precision)
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
const randomData = []
|
|
8
|
+
|
|
9
|
+
for (let i = 0; i < 50; i++) {
|
|
10
|
+
randomData.push([
|
|
11
|
+
rangeRandom(20, 200, 2), rangeRandom(10, 100, 2)
|
|
12
|
+
])
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const Basic_Scatter = {
|
|
16
|
+
code:
|
|
17
|
+
`const getOption = () => {
|
|
18
|
+
return {
|
|
19
|
+
type: 'scatter',
|
|
20
|
+
data: {
|
|
21
|
+
'random': ${JSON.stringify(randomData)},
|
|
22
|
+
},
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
return getOption;`
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const Grouped_Scatter = {
|
|
29
|
+
code: `const getOption = () => {
|
|
30
|
+
return {
|
|
31
|
+
type: 'scatter',
|
|
32
|
+
data: {
|
|
33
|
+
'female': [
|
|
34
|
+
[161.2, 51.6], [167.5, 59.0], [159.5, 49.2], [157.0, 63.0], [155.8, 53.6],
|
|
35
|
+
[170.0, 59.0], [159.1, 47.6], [166.0, 69.8], [176.2, 66.8], [160.2, 75.2],
|
|
36
|
+
[172.5, 55.2], [170.9, 54.2], [172.9, 62.5], [153.4, 42.0], [160.0, 50.0],
|
|
37
|
+
[147.2, 49.8], [168.2, 49.2], [175.0, 73.2], [157.0, 47.8], [167.6, 68.8],
|
|
38
|
+
[159.5, 50.6], [175.0, 82.5], [166.8, 57.2], [176.5, 87.8], [170.2, 72.8],
|
|
39
|
+
[174.0, 54.5], [173.0, 59.8], [179.9, 67.3], [170.5, 67.8], [160.0, 47.0],
|
|
40
|
+
[154.4, 46.2], [162.0, 55.0], [176.5, 83.0], [160.0, 54.4], [152.0, 45.8],
|
|
41
|
+
[162.1, 53.6], [170.0, 73.2], [160.2, 52.1], [161.3, 67.9], [166.4, 56.6],
|
|
42
|
+
[168.9, 62.3], [163.8, 58.5], [167.6, 54.5], [160.0, 50.2], [161.3, 60.3],
|
|
43
|
+
[167.6, 58.3], [165.1, 56.2], [160.0, 50.2], [170.0, 72.9], [157.5, 59.8],
|
|
44
|
+
[167.6, 61.0], [160.7, 69.1], [163.2, 55.9], [152.4, 46.5], [157.5, 54.3],
|
|
45
|
+
[168.3, 54.8], [180.3, 60.7], [165.5, 60.0], [165.0, 62.0], [164.5, 60.3],
|
|
46
|
+
[156.0, 52.7], [160.0, 74.3], [163.0, 62.0], [165.7, 73.1], [161.0, 80.0],
|
|
47
|
+
[162.0, 54.7], [166.0, 53.2], [174.0, 75.7], [172.7, 61.1], [167.6, 55.7],
|
|
48
|
+
[151.1, 48.7], [164.5, 52.3], [163.5, 50.0], [152.0, 59.3], [169.0, 62.5],
|
|
49
|
+
[164.0, 55.7], [161.2, 54.8], [155.0, 45.9], [170.0, 70.6], [176.2, 67.2],
|
|
50
|
+
[170.0, 69.4], [162.5, 58.2], [170.3, 64.8], [164.1, 71.6], [169.5, 52.8],
|
|
51
|
+
[163.2, 59.8], [154.5, 49.0], [159.8, 50.0], [173.2, 69.2], [170.0, 55.9],
|
|
52
|
+
[161.4, 63.4], [169.0, 58.2], [166.2, 58.6], [159.4, 45.7], [162.5, 52.2],
|
|
53
|
+
[159.0, 48.6], [162.8, 57.8], [159.0, 55.6], [179.8, 66.8], [162.9, 59.4],
|
|
54
|
+
[161.0, 53.6], [151.1, 73.2], [168.2, 53.4], [168.9, 69.0], [173.2, 58.4],
|
|
55
|
+
[171.8, 56.2], [178.0, 70.6], [164.3, 59.8], [163.0, 72.0], [168.5, 65.2],
|
|
56
|
+
[166.8, 56.6], [172.7, 105.2], [163.5, 51.8], [169.4, 63.4], [167.8, 59.0],
|
|
57
|
+
[159.5, 47.6], [167.6, 63.0], [161.2, 55.2], [160.0, 45.0], [163.2, 54.0],
|
|
58
|
+
[162.2, 50.2], [161.3, 60.2], [149.5, 44.8], [157.5, 58.8], [163.2, 56.4],
|
|
59
|
+
[172.7, 62.0], [155.0, 49.2], [156.5, 67.2], [164.0, 53.8], [160.9, 54.4],
|
|
60
|
+
[162.8, 58.0], [167.0, 59.8], [160.0, 54.8], [160.0, 43.2], [168.9, 60.5],
|
|
61
|
+
[158.2, 46.4], [156.0, 64.4], [160.0, 48.8], [167.1, 62.2], [158.0, 55.5],
|
|
62
|
+
[167.6, 57.8], [156.0, 54.6], [162.1, 59.2], [173.4, 52.7], [159.8, 53.2],
|
|
63
|
+
[170.5, 64.5], [159.2, 51.8], [157.5, 56.0], [161.3, 63.6], [162.6, 63.2],
|
|
64
|
+
[160.0, 59.5], [168.9, 56.8], [165.1, 64.1], [162.6, 50.0], [165.1, 72.3],
|
|
65
|
+
[166.4, 55.0], [160.0, 55.9], [152.4, 60.4], [170.2, 69.1], [162.6, 84.5],
|
|
66
|
+
[170.2, 55.9], [158.8, 55.5], [172.7, 69.5], [167.6, 76.4], [162.6, 61.4],
|
|
67
|
+
[167.6, 65.9], [156.2, 58.6], [175.2, 66.8], [172.1, 56.6], [162.6, 58.6],
|
|
68
|
+
[160.0, 55.9], [165.1, 59.1], [182.9, 81.8], [166.4, 70.7], [165.1, 56.8],
|
|
69
|
+
[177.8, 60.0], [165.1, 58.2], [175.3, 72.7], [154.9, 54.1], [158.8, 49.1],
|
|
70
|
+
[172.7, 75.9], [168.9, 55.0], [161.3, 57.3], [167.6, 55.0], [165.1, 65.5],
|
|
71
|
+
[175.3, 65.5], [157.5, 48.6], [163.8, 58.6], [167.6, 63.6], [165.1, 55.2],
|
|
72
|
+
[165.1, 62.7], [168.9, 56.6], [162.6, 53.9], [164.5, 63.2], [176.5, 73.6],
|
|
73
|
+
[168.9, 62.0], [175.3, 63.6], [159.4, 53.2], [160.0, 53.4], [170.2, 55.0],
|
|
74
|
+
[162.6, 70.5], [167.6, 54.5], [162.6, 54.5], [160.7, 55.9], [160.0, 59.0],
|
|
75
|
+
[157.5, 63.6], [162.6, 54.5], [152.4, 47.3], [170.2, 67.7], [165.1, 80.9],
|
|
76
|
+
[172.7, 70.5], [165.1, 60.9], [170.2, 63.6], [170.2, 54.5], [170.2, 59.1],
|
|
77
|
+
[161.3, 70.5], [167.6, 52.7], [167.6, 62.7], [165.1, 86.3], [162.6, 66.4],
|
|
78
|
+
[152.4, 67.3], [168.9, 63.0], [170.2, 73.6], [175.2, 62.3], [175.2, 57.7],
|
|
79
|
+
[160.0, 55.4], [165.1, 104.1], [174.0, 55.5], [170.2, 77.3], [160.0, 80.5],
|
|
80
|
+
[167.6, 64.5], [167.6, 72.3], [167.6, 61.4], [154.9, 58.2], [162.6, 81.8],
|
|
81
|
+
[175.3, 63.6], [171.4, 53.4], [157.5, 54.5], [165.1, 53.6], [160.0, 60.0],
|
|
82
|
+
[174.0, 73.6], [162.6, 61.4], [174.0, 55.5], [162.6, 63.6], [161.3, 60.9],
|
|
83
|
+
[156.2, 60.0], [149.9, 46.8], [169.5, 57.3], [160.0, 64.1], [175.3, 63.6],
|
|
84
|
+
[169.5, 67.3], [160.0, 75.5], [172.7, 68.2], [162.6, 61.4], [157.5, 76.8],
|
|
85
|
+
[176.5, 71.8], [164.4, 55.5], [160.7, 48.6], [174.0, 66.4], [163.8, 67.3]
|
|
86
|
+
],
|
|
87
|
+
"male": [
|
|
88
|
+
[174.0, 65.6], [175.3, 71.8], [193.5, 80.7], [186.5, 72.6], [187.2, 78.8],
|
|
89
|
+
[181.5, 74.8], [184.0, 86.4], [184.5, 78.4], [175.0, 62.0], [184.0, 81.6],
|
|
90
|
+
[180.0, 76.6], [177.8, 83.6], [192.0, 90.0], [176.0, 74.6], [174.0, 71.0],
|
|
91
|
+
[184.0, 79.6], [192.7, 93.8], [171.5, 70.0], [173.0, 72.4], [176.0, 85.9],
|
|
92
|
+
[176.0, 78.8], [180.5, 77.8], [172.7, 66.2], [176.0, 86.4], [173.5, 81.8],
|
|
93
|
+
[178.0, 89.6], [180.3, 82.8], [180.3, 76.4], [164.5, 63.2], [173.0, 60.9],
|
|
94
|
+
[183.5, 74.8], [175.5, 70.0], [188.0, 72.4], [189.2, 84.1], [172.8, 69.1],
|
|
95
|
+
[170.0, 59.5], [182.0, 67.2], [170.0, 61.3], [177.8, 68.6], [184.2, 80.1],
|
|
96
|
+
[186.7, 87.8], [171.4, 84.7], [172.7, 73.4], [175.3, 72.1], [180.3, 82.6],
|
|
97
|
+
[182.9, 88.7], [188.0, 84.1], [177.2, 94.1], [172.1, 74.9], [167.0, 59.1],
|
|
98
|
+
[169.5, 75.6], [174.0, 86.2], [172.7, 75.3], [182.2, 87.1], [164.1, 55.2],
|
|
99
|
+
[163.0, 57.0], [171.5, 61.4], [184.2, 76.8], [174.0, 86.8], [174.0, 72.2],
|
|
100
|
+
[177.0, 71.6], [186.0, 84.8], [167.0, 68.2], [171.8, 66.1], [182.0, 72.0],
|
|
101
|
+
[167.0, 64.6], [177.8, 74.8], [164.5, 70.0], [192.0, 101.6], [175.5, 63.2],
|
|
102
|
+
[171.2, 79.1], [181.6, 78.9], [167.4, 67.7], [181.1, 66.0], [177.0, 68.2],
|
|
103
|
+
[174.5, 63.9], [177.5, 72.0], [170.5, 56.8], [182.4, 74.5], [197.1, 90.9],
|
|
104
|
+
[180.1, 93.0], [175.5, 80.9], [180.6, 72.7], [184.4, 68.0], [175.5, 70.9],
|
|
105
|
+
[180.6, 72.5], [177.0, 72.5], [177.1, 83.4], [181.6, 75.5], [176.5, 73.0],
|
|
106
|
+
[175.0, 70.2], [174.0, 73.4], [165.1, 70.5], [177.0, 68.9], [192.0, 102.3],
|
|
107
|
+
[176.5, 68.4], [169.4, 65.9], [182.1, 75.7], [179.8, 84.5], [175.3, 87.7],
|
|
108
|
+
[184.9, 86.4], [177.3, 73.2], [167.4, 53.9], [178.1, 72.0], [168.9, 55.5],
|
|
109
|
+
[157.2, 58.4], [180.3, 83.2], [170.2, 72.7], [177.8, 64.1], [172.7, 72.3],
|
|
110
|
+
[165.1, 65.0], [186.7, 86.4], [165.1, 65.0], [174.0, 88.6], [175.3, 84.1],
|
|
111
|
+
[185.4, 66.8], [177.8, 75.5], [180.3, 93.2], [180.3, 82.7], [177.8, 58.0],
|
|
112
|
+
[177.8, 79.5], [177.8, 78.6], [177.8, 71.8], [177.8, 116.4], [163.8, 72.2],
|
|
113
|
+
[188.0, 83.6], [198.1, 85.5], [175.3, 90.9], [166.4, 85.9], [190.5, 89.1],
|
|
114
|
+
[166.4, 75.0], [177.8, 77.7], [179.7, 86.4], [172.7, 90.9], [190.5, 73.6],
|
|
115
|
+
[185.4, 76.4], [168.9, 69.1], [167.6, 84.5], [175.3, 64.5], [170.2, 69.1],
|
|
116
|
+
[190.5, 108.6], [177.8, 86.4], [190.5, 80.9], [177.8, 87.7], [184.2, 94.5],
|
|
117
|
+
[176.5, 80.2], [177.8, 72.0], [180.3, 71.4], [171.4, 72.7], [172.7, 84.1],
|
|
118
|
+
[172.7, 76.8], [177.8, 63.6], [177.8, 80.9], [182.9, 80.9], [170.2, 85.5],
|
|
119
|
+
[167.6, 68.6], [175.3, 67.7], [165.1, 66.4], [185.4, 102.3], [181.6, 70.5],
|
|
120
|
+
[172.7, 95.9], [190.5, 84.1], [179.1, 87.3], [175.3, 71.8], [170.2, 65.9],
|
|
121
|
+
[193.0, 95.9], [171.4, 91.4], [177.8, 81.8], [177.8, 96.8], [167.6, 69.1],
|
|
122
|
+
[167.6, 82.7], [180.3, 75.5], [182.9, 79.5], [176.5, 73.6], [186.7, 91.8],
|
|
123
|
+
[188.0, 84.1], [188.0, 85.9], [177.8, 81.8], [174.0, 82.5], [177.8, 80.5],
|
|
124
|
+
[171.4, 70.0], [185.4, 81.8], [185.4, 84.1], [188.0, 90.5], [188.0, 91.4],
|
|
125
|
+
[182.9, 89.1], [176.5, 85.0], [175.3, 69.1], [175.3, 73.6], [188.0, 80.5],
|
|
126
|
+
[188.0, 82.7], [175.3, 86.4], [170.5, 67.7], [179.1, 92.7], [177.8, 93.6],
|
|
127
|
+
[175.3, 70.9], [182.9, 75.0], [170.8, 93.2], [188.0, 93.2], [180.3, 77.7],
|
|
128
|
+
[177.8, 61.4], [185.4, 94.1], [168.9, 75.0], [185.4, 83.6], [180.3, 85.5],
|
|
129
|
+
[174.0, 73.9], [167.6, 66.8], [182.9, 87.3], [160.0, 72.3], [180.3, 88.6],
|
|
130
|
+
[167.6, 75.5], [186.7, 101.4], [175.3, 91.1], [175.3, 67.3], [175.9, 77.7],
|
|
131
|
+
[175.3, 81.8], [179.1, 75.5], [181.6, 84.5], [177.8, 76.6], [182.9, 85.0],
|
|
132
|
+
[177.8, 102.5], [184.2, 77.3], [179.1, 71.8], [176.5, 87.9], [188.0, 94.3],
|
|
133
|
+
[174.0, 70.9], [167.6, 64.5], [170.2, 77.3], [167.6, 72.3], [188.0, 87.3],
|
|
134
|
+
[174.0, 80.0], [176.5, 82.3], [180.3, 73.6], [167.6, 74.1], [188.0, 85.9],
|
|
135
|
+
[180.3, 73.2], [167.6, 76.3], [183.0, 65.9], [183.0, 90.9], [179.1, 89.1],
|
|
136
|
+
[170.2, 62.3], [177.8, 82.7], [179.1, 79.1], [190.5, 98.2], [177.8, 84.1],
|
|
137
|
+
[180.3, 83.2], [180.3, 83.2]
|
|
138
|
+
]
|
|
139
|
+
},
|
|
140
|
+
xAxis:{
|
|
141
|
+
min: 140,
|
|
142
|
+
max: 200,
|
|
143
|
+
},
|
|
144
|
+
yAxis:{
|
|
145
|
+
min: 40,
|
|
146
|
+
max: 120,
|
|
147
|
+
},
|
|
148
|
+
xAxisLabel: 'Height',
|
|
149
|
+
yAxisLabel: 'Weight',
|
|
150
|
+
xAxisNameGap: 5,
|
|
151
|
+
yAxisNameGap: 5,
|
|
152
|
+
tooltip: {
|
|
153
|
+
axisPointer: {
|
|
154
|
+
type: 'cross'
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
return getOption;`
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
const Quadrant = {
|
|
163
|
+
code: `const getOption = () => {
|
|
164
|
+
return {
|
|
165
|
+
type: 'scatter',
|
|
166
|
+
data: {
|
|
167
|
+
'Data':
|
|
168
|
+
[{
|
|
169
|
+
value: [1, 1],
|
|
170
|
+
symbol: 'none',
|
|
171
|
+
}, {
|
|
172
|
+
value: [0, -1],
|
|
173
|
+
symbol: 'none',
|
|
174
|
+
},
|
|
175
|
+
[0.35, 0.18],
|
|
176
|
+
[0.55, 0.77],
|
|
177
|
+
[0.88, 0.23],
|
|
178
|
+
[0.23, -0.25],
|
|
179
|
+
[0.65, -0.66]
|
|
180
|
+
],
|
|
181
|
+
},
|
|
182
|
+
markArea: {
|
|
183
|
+
itemStyle: {
|
|
184
|
+
color: '#FFFAFA',
|
|
185
|
+
opacity: '0.7'
|
|
186
|
+
},
|
|
187
|
+
emphasis: {
|
|
188
|
+
itemStyle: {
|
|
189
|
+
color: '#FFFAFA',
|
|
190
|
+
opacity: '0.7'
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
data: [
|
|
194
|
+
[{
|
|
195
|
+
coord: [0.5, 0]
|
|
196
|
+
}, {
|
|
197
|
+
coord: [1, 1]
|
|
198
|
+
}],
|
|
199
|
+
[{
|
|
200
|
+
coord: [0.5, 0]
|
|
201
|
+
}, {
|
|
202
|
+
coord: [0, -1]
|
|
203
|
+
}]
|
|
204
|
+
]
|
|
205
|
+
},
|
|
206
|
+
markLine: {
|
|
207
|
+
symbol: 'none',
|
|
208
|
+
data: [
|
|
209
|
+
[{
|
|
210
|
+
value: 0.5,
|
|
211
|
+
coord: [0.5, -1]
|
|
212
|
+
}, {
|
|
213
|
+
coord: [0.5, 1]
|
|
214
|
+
}]
|
|
215
|
+
]
|
|
216
|
+
},
|
|
217
|
+
legend: false,
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
return getOption;`
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
const Bubble = {
|
|
224
|
+
code: `const getOption = () => {
|
|
225
|
+
return {
|
|
226
|
+
type: 'scatter',
|
|
227
|
+
data: {
|
|
228
|
+
'bubble': ${JSON.stringify(randomData)},
|
|
229
|
+
},
|
|
230
|
+
itemStyle: {
|
|
231
|
+
normal: {
|
|
232
|
+
opacity: 0.8
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
symbolSize: function(val) {
|
|
236
|
+
const [a, b] = val
|
|
237
|
+
return Math.abs(a - b) / 2
|
|
238
|
+
},
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
return getOption;`
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
const ex1 = new $visualify.LiveEditor(Basic_Scatter).mount('#ex1');
|
|
245
|
+
const ex2 = new $visualify.LiveEditor(Grouped_Scatter).mount('#ex2');
|
|
246
|
+
const ex3 = new $visualify.LiveEditor(Quadrant).mount('#ex3');
|
|
247
|
+
const ex4 = new $visualify.LiveEditor(Bubble).mount('#ex4');
|
|
248
|
+
</script>
|
|
249
|
+
|
|
250
|
+
# Scatter Chart
|
|
251
|
+
|
|
252
|
+
## Basic Scatter Chart
|
|
253
|
+
|
|
254
|
+
<div id="ex1"></div>
|
|
255
|
+
|
|
256
|
+
## Grouped Scatter Chart
|
|
257
|
+
|
|
258
|
+
<div id="ex2"></div>
|
|
259
|
+
|
|
260
|
+
## Quadrant Scatter Chart
|
|
261
|
+
|
|
262
|
+
<div id="ex3"></div>
|
|
263
|
+
|
|
264
|
+
## Bubble Scatter Chart
|
|
265
|
+
|
|
266
|
+
<div id="ex4"></div>
|
|
267
|
+
|
|
268
|
+
## Overall Configuration
|
|
269
|
+
|
|
270
|
+
### Basic Configuration
|
|
271
|
+
|
|
272
|
+
The basic configuration includes:
|
|
273
|
+
|
|
274
|
+
| Attribute | Type | Description | Choice | Default |
|
|
275
|
+
| --------------- | ----------- | ----------------------- | -------------------------- | ------- |
|
|
276
|
+
| title | string | The main title | User-defined title | - |
|
|
277
|
+
| subtitle | string | A secondary title | User-defined subtitle | - |
|
|
278
|
+
| width | string | The width dimension | Any valid CSS width value | - |
|
|
279
|
+
| height | string | The height dimension | Any valid CSS height value | 400px |
|
|
280
|
+
| legend | bool/object | show or hide legend | False, User-defined legend | {} |
|
|
281
|
+
| xAxis | array/false | The xAxis | User-defined xAxis Data | [] |
|
|
282
|
+
| yAxis | array/false | The yAxis | User-defined yAxis Data | [] |
|
|
283
|
+
| label | object | The label | User-defined label | {} |
|
|
284
|
+
| labelLine | object | The labelLine | User-defined labelLine | {} |
|
|
285
|
+
| tooltip | object | The tooltip | User-defined tooltip | {} |
|
|
286
|
+
| xAxisLineshow | bool | show or hide xAxisLines | True, False | true |
|
|
287
|
+
| yAxisLineshow | bool | show or hide yAxisLines | True, False | true |
|
|
288
|
+
| xAxisLabelShow | bool | show or hide xAxisLabel | True, False | true |
|
|
289
|
+
| yAxisLabelShow | bool | show or hide yAxisLabel | True, False | true |
|
|
290
|
+
| xAxisLabelColor | string | The xAxisLabelColor | Any valid CSS color value | - |
|
|
291
|
+
| yAxisLabelColor | string | The yAxisLabelColor | Any valid CSS color value | - |
|
|
292
|
+
|
|
293
|
+
### Data Configuration
|
|
294
|
+
|
|
295
|
+
| Attribute | Type | Description | Choice | Default |
|
|
296
|
+
| --------- | ------------ | ----------- | ----------------- | --------- |
|
|
297
|
+
| data | string | The data | User-defined data | {} |
|
|
298
|
+
| type | string/array | The type | 'line', 'bar' | undefined |
|
package/docs/docs/_404.md
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
<style>
|
|
2
|
-
body {
|
|
3
|
-
font-family: Arial, sans-serif;
|
|
4
|
-
display: flex;
|
|
5
|
-
justify-content: center;
|
|
6
|
-
align-items: center;
|
|
7
|
-
height: 100vh;
|
|
8
|
-
margin: 0;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
.container {
|
|
12
|
-
text-align: center;
|
|
13
|
-
background-color: #ffffff;
|
|
14
|
-
padding: 50px;
|
|
15
|
-
margin-top: 5vh;
|
|
16
|
-
border-radius: 10px;
|
|
17
|
-
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.container h1 {
|
|
21
|
-
font-size: 72px;
|
|
22
|
-
margin-bottom: 20px;
|
|
23
|
-
color: #ff5252;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.container p {
|
|
27
|
-
font-size: 24px;
|
|
28
|
-
margin-bottom: 30px;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.container a {
|
|
32
|
-
font-size: 18px;
|
|
33
|
-
text-decoration: none;
|
|
34
|
-
color: #2196f3;
|
|
35
|
-
border: 1px solid #2196f3;
|
|
36
|
-
padding: 10px 15px;
|
|
37
|
-
border-radius: 5px;
|
|
38
|
-
transition: background-color 0.3s, color 0.3s;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
.container a:hover {
|
|
42
|
-
background-color: #2196f3;
|
|
43
|
-
color: #ffffff;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
</style>
|
|
47
|
-
|
|
48
|
-
<div class="container">
|
|
49
|
-
<h1>404</h1>
|
|
50
|
-
<p>Oops! The page you're looking for doesn't exist.</p>
|
|
51
|
-
<a href="/">Go Home</a>
|
|
1
|
+
<style>
|
|
2
|
+
body {
|
|
3
|
+
font-family: Arial, sans-serif;
|
|
4
|
+
display: flex;
|
|
5
|
+
justify-content: center;
|
|
6
|
+
align-items: center;
|
|
7
|
+
height: 100vh;
|
|
8
|
+
margin: 0;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.container {
|
|
12
|
+
text-align: center;
|
|
13
|
+
background-color: #ffffff;
|
|
14
|
+
padding: 50px;
|
|
15
|
+
margin-top: 5vh;
|
|
16
|
+
border-radius: 10px;
|
|
17
|
+
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.container h1 {
|
|
21
|
+
font-size: 72px;
|
|
22
|
+
margin-bottom: 20px;
|
|
23
|
+
color: #ff5252;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.container p {
|
|
27
|
+
font-size: 24px;
|
|
28
|
+
margin-bottom: 30px;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.container a {
|
|
32
|
+
font-size: 18px;
|
|
33
|
+
text-decoration: none;
|
|
34
|
+
color: #2196f3;
|
|
35
|
+
border: 1px solid #2196f3;
|
|
36
|
+
padding: 10px 15px;
|
|
37
|
+
border-radius: 5px;
|
|
38
|
+
transition: background-color 0.3s, color 0.3s;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.container a:hover {
|
|
42
|
+
background-color: #2196f3;
|
|
43
|
+
color: #ffffff;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
</style>
|
|
47
|
+
|
|
48
|
+
<div class="container">
|
|
49
|
+
<h1>404</h1>
|
|
50
|
+
<p>Oops! The page you're looking for doesn't exist.</p>
|
|
51
|
+
<a href="/">Go Home</a>
|
|
52
52
|
</div>
|
package/docs/docs/_coverpage.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
<!-- _coverpage.md -->
|
|
2
|
-
|
|
3
|
-

|
|
4
|
-
|
|
5
|
-
# visualify.js <small>
|
|
6
|
-
|
|
7
|
-
> A magical data portal generator
|
|
8
|
-
|
|
9
|
-
[GitHub](https://github.com/
|
|
10
|
-
[Getting Started](#visualify)
|
|
11
|
-
|
|
1
|
+
<!-- _coverpage.md -->
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+
|
|
5
|
+
# visualify.js <small>3.0.0</small>
|
|
6
|
+
|
|
7
|
+
> A magical data portal generator
|
|
8
|
+
|
|
9
|
+
[GitHub](https://github.com/visualify)
|
|
10
|
+
[Getting Started](#visualify)
|
|
11
|
+
|
package/docs/docs/_sidebar.md
CHANGED
|
@@ -1,43 +1,54 @@
|
|
|
1
|
-
- Getting
|
|
2
|
-
|
|
3
|
-
- [Introduction](/README.md)
|
|
4
|
-
- [Quick
|
|
5
|
-
- [
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
|
|
9
|
-
- [Usage](/rechart-basic-usage.md)
|
|
10
|
-
- [Attributes](/rechart-attributes.md)
|
|
11
|
-
- [Line Chart](/Rechart/line.md)
|
|
12
|
-
- [Bar Chart](/Rechart/bar.md)
|
|
13
|
-
- [Pie Chart](/Rechart/pie.md)
|
|
14
|
-
- [Radar Chart](/Rechart/radar.md)
|
|
15
|
-
- [Funnel Chart](/Rechart/funnel.md)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
|
|
20
|
-
- [
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
- [
|
|
25
|
-
- [
|
|
26
|
-
- [
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
- [
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
- [
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
- [
|
|
41
|
-
- [
|
|
42
|
-
|
|
43
|
-
|
|
1
|
+
- Getting Started
|
|
2
|
+
|
|
3
|
+
- [Introduction](/README.md)
|
|
4
|
+
- [Quick Start](/quickstart.md)
|
|
5
|
+
- [Docsify Plugin](/docsify-plugin.md)
|
|
6
|
+
|
|
7
|
+
- Charts (2D)
|
|
8
|
+
|
|
9
|
+
- [Usage](/rechart-basic-usage.md)
|
|
10
|
+
- [Attributes](/rechart-attributes.md)
|
|
11
|
+
- [Line Chart](/Rechart/line.md)
|
|
12
|
+
- [Bar Chart](/Rechart/bar.md)
|
|
13
|
+
- [Pie Chart](/Rechart/pie.md)
|
|
14
|
+
- [Radar Chart](/Rechart/radar.md)
|
|
15
|
+
- [Funnel Chart](/Rechart/funnel.md)
|
|
16
|
+
- [Scatter Chart](/Rechart/scatter.md)
|
|
17
|
+
|
|
18
|
+
- Charts (3D)
|
|
19
|
+
|
|
20
|
+
- [3D Visualization](/3d-visualization.md)
|
|
21
|
+
|
|
22
|
+
- Page Mode
|
|
23
|
+
|
|
24
|
+
- [ScatterL](/components/scatterL.md)
|
|
25
|
+
- [Visium](/components/visium.md)
|
|
26
|
+
- [DotBio](/components/dotBio.md)
|
|
27
|
+
- [Echart](/components/echart.md)
|
|
28
|
+
- [Plotly](/components/plotly.md)
|
|
29
|
+
- [Macaron](/components/macaron.md)
|
|
30
|
+
- [More...](/components/more.md)
|
|
31
|
+
|
|
32
|
+
- Customization
|
|
33
|
+
|
|
34
|
+
- [Configuration](/configuration.md)
|
|
35
|
+
- [Theme](/theme.md)
|
|
36
|
+
|
|
37
|
+
- Developer Experience
|
|
38
|
+
|
|
39
|
+
- [Hot Module Replacement](/hmr.md)
|
|
40
|
+
- [TypeScript](/typescript.md)
|
|
41
|
+
- [Visual Editor](/visual-editor.md)
|
|
42
|
+
- [Internationalization](/i18n.md)
|
|
43
|
+
|
|
44
|
+
- Guide
|
|
45
|
+
|
|
46
|
+
- [CLI](/CLI.md)
|
|
47
|
+
- [Deploy](/deploy.md)
|
|
48
|
+
|
|
49
|
+
- Showcase
|
|
50
|
+
|
|
51
|
+
- [MmTrBC](https://visualify.pharmacy.arizona.edu/MmTrBC/)
|
|
52
|
+
- [EsoDev](https://visualify.pharmacy.arizona.edu/EsoDev/)
|
|
53
|
+
|
|
54
|
+
- [UpdateLog](/log.md)
|
|
@@ -1,34 +1,87 @@
|
|
|
1
|
-
# DotBio Component
|
|
2
|
-
|
|
3
|
-
The DotBio component
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
##
|
|
8
|
-
|
|
9
|
-
The DotBio component
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
1
|
+
# DotBio Component
|
|
2
|
+
|
|
3
|
+
The DotBio component creates dot plots (also known as bubble plots) commonly used in bioinformatics to display gene expression patterns across cell types. Each dot represents the expression of a gene in a specific cell type, with size indicating the percentage of expressing cells and color indicating expression level.
|
|
4
|
+
|
|
5
|
+
> **Note:** This component requires a backend API to supply gene expression and metadata. A live demo is not available in this documentation.
|
|
6
|
+
|
|
7
|
+
## How It Works
|
|
8
|
+
|
|
9
|
+
The DotBio component fetches cell-type metadata and gene expression data from backend APIs, then renders a matrix of dots where rows are cell types and columns are genes.
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
Gene A Gene B Gene C Gene D
|
|
13
|
+
Cell Type 1 ● ◉ ○ ●
|
|
14
|
+
Cell Type 2 ○ ● ◉ ○
|
|
15
|
+
Cell Type 3 ◉ ○ ● ◉
|
|
16
|
+
Cell Type 4 ● ● ○ ○
|
|
17
|
+
|
|
18
|
+
● = high expression (large, dark)
|
|
19
|
+
◉ = medium expression
|
|
20
|
+
○ = low expression (small, light)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
The dot size encodes the percentage of cells expressing the gene, while the dot color encodes the average expression level. This dual encoding lets researchers quickly identify which genes are active in which cell populations.
|
|
24
|
+
|
|
25
|
+
## Properties
|
|
26
|
+
|
|
27
|
+
| Property | Type | Required | Description |
|
|
28
|
+
|---|---|---|---|
|
|
29
|
+
| `type` | string | Yes | Must be set to `"DotBio"`. |
|
|
30
|
+
| `id` | string | Yes | A unique identifier for this component instance. Used for cross-component references and event targeting. |
|
|
31
|
+
| `row` | int | No | The grid row position where the component is placed (1-based). |
|
|
32
|
+
| `col` | int | No | The grid column position where the component is placed (1-based). |
|
|
33
|
+
| `rowspan` | int | No | The number of grid rows this component spans. Defaults to 1. |
|
|
34
|
+
| `colspan` | int | No | The number of grid columns this component spans. Defaults to 1. |
|
|
35
|
+
| `settings` | object | No | Display and behavior settings. See the **Settings** table below. |
|
|
36
|
+
| `meta` | object | Yes | Defines the metadata API endpoint that provides cell-type information. |
|
|
37
|
+
| `meta.name` | string | Yes | A label for the metadata source (e.g., `"metadata"`). |
|
|
38
|
+
| `meta.url` | string | Yes | The backend URL that returns cell-type metadata. |
|
|
39
|
+
| `exclude_celltype` | array | No | An array of cell-type names to exclude from the plot. Useful for filtering out irrelevant or noisy populations. |
|
|
40
|
+
| `gene` | string | Yes | The backend API URL that returns gene expression data for the selected genes. |
|
|
41
|
+
| `genelist` | string | Yes | The name of the gene list variable to use. This should match a gene list defined elsewhere in the page configuration. |
|
|
42
|
+
|
|
43
|
+
### Settings
|
|
44
|
+
|
|
45
|
+
| Property | Type | Default | Description |
|
|
46
|
+
|---|---|---|---|
|
|
47
|
+
| `preset` | string | - | A named preset that applies predefined styling and layout options (e.g., `"mmtrbc"`). |
|
|
48
|
+
| `ignoreEmptyData` | boolean | `false` | When `true`, the component will not render an error or placeholder if the API returns empty data. |
|
|
49
|
+
| `showscale` | boolean | `true` | Whether to display the color scale legend alongside the plot. |
|
|
50
|
+
| `showlegend` | boolean | `true` | Whether to display the size legend indicating percentage of expressing cells. |
|
|
51
|
+
|
|
52
|
+
## Example
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"id": "dotbio_expression",
|
|
57
|
+
"type": "DotBio",
|
|
58
|
+
"col": 1,
|
|
59
|
+
"rowspan": 4,
|
|
60
|
+
"colspan": 2,
|
|
61
|
+
"settings": {
|
|
62
|
+
"preset": "mmtrbc",
|
|
63
|
+
"ignoreEmptyData": true,
|
|
64
|
+
"showscale": true,
|
|
65
|
+
"showlegend": true
|
|
66
|
+
},
|
|
67
|
+
"meta": {
|
|
68
|
+
// Label for this metadata source
|
|
69
|
+
"name": "metadata",
|
|
70
|
+
// Backend endpoint returning cell-type information
|
|
71
|
+
"url": "<your-backend-url>/api/metadata"
|
|
72
|
+
},
|
|
73
|
+
// Cell types to exclude from the visualization
|
|
74
|
+
"exclude_celltype": ["BC-Mes", "BC-NE"],
|
|
75
|
+
// Backend endpoint returning gene expression values
|
|
76
|
+
"gene": "<your-backend-url>/api/gene",
|
|
77
|
+
// References a gene list defined in the page configuration
|
|
78
|
+
"genelist": "selected_genes"
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## See Also
|
|
83
|
+
|
|
84
|
+
- [Plotly Component](/components/plotly.md) - For scatter and violin plots of expression data
|
|
85
|
+
- [Echart Component](/components/echart.md) - General-purpose chart component
|
|
86
|
+
- [Configuration](/configuration.md) - How to set up page mode
|
|
87
|
+
- [MmTrBC Showcase](https://visualify.pharmacy.arizona.edu/MmTrBC/) - Live project using DotBio and other components
|