From 74f27b4f3cf2e4c92388592fc0b30a9edaea1a40 Mon Sep 17 00:00:00 2001 From: Ian Thomas Date: Tue, 29 Apr 2025 15:07:20 +0100 Subject: [PATCH] Simplify example --- README.md | 27 ++++++++++++++++++++++ ci/tests/example.spec.ts | 3 --- ci/typescript/create_angular_ng.sh | 26 ++++++++------------- ci/typescript/create_react_vite.sh | 26 ++++++++------------- ci/typescript/create_vanilla_rspack.sh | 26 ++++++++------------- ci/typescript/create_vanilla_vite.sh | 26 ++++++++------------- ci/typescript/create_vanilla_webpack.sh | 26 ++++++++------------- ci/typescript/create_vue_vite.sh | 26 ++++++++------------- example.png | Bin 0 -> 123024 bytes recipes/src/recipes/typescript/common.ts | 28 ++++++++--------------- typescript/angular_ng/README.md | 26 ++++++++------------- typescript/react_vite/README.md | 26 ++++++++------------- typescript/vanilla_rspack/README.md | 26 ++++++++------------- typescript/vanilla_vite/README.md | 26 ++++++++------------- typescript/vanilla_webpack/README.md | 26 ++++++++------------- typescript/vue_vite/README.md | 26 ++++++++------------- 16 files changed, 145 insertions(+), 225 deletions(-) create mode 100644 example.png diff --git a/README.md b/README.md index 1f51687..c356bd7 100644 --- a/README.md +++ b/README.md @@ -20,3 +20,30 @@ npm pack This will produce the file `bokeh-bokehjs-3.8.0-dev.1.tgz` which should be copied to the root directory of the bokehjs-examples repository. + +--- + +```ts +import * as Bokeh from "@bokeh/bokehjs"; + +function create_bokehjs_plot(): Bokeh.Plotting.Figure { + // Create figure + const plot = Bokeh.Plotting.figure({ + title: "Example BokehJS plot", height: 500, sizing_mode: "stretch_width" + }); + + // Calculate x, y value of sine curve + const x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + const y = x.map(x => Math.sin(Math.PI*x/6)); + + // Plot circles + plot.scatter(x, y, {color: "blue", size: 30, fill_alpha: 0.4}); + + return plot; +} + +// Render plot in
+Bokeh.Plotting.show(create_bokehjs_plot(), "#target"); +``` + +Example plot diff --git a/ci/tests/example.spec.ts b/ci/tests/example.spec.ts index ff4296d..f2cb6e0 100644 --- a/ci/tests/example.spec.ts +++ b/ci/tests/example.spec.ts @@ -17,9 +17,6 @@ test('loads bokehjs', async ({ page }) => { test('is interactive', async ({ page }) => { await page.goto('/'); - for (var i = 0; i < 20; i++) { - await page.locator('.bk-Button').click(); - } // Take screenshot const boxZoom = await page.getByTitle('Box Zoom').click(); diff --git a/ci/typescript/create_angular_ng.sh b/ci/typescript/create_angular_ng.sh index 3309bdf..705c1d4 100755 --- a/ci/typescript/create_angular_ng.sh +++ b/ci/typescript/create_angular_ng.sh @@ -34,29 +34,21 @@ cat > src/app/bokeh-js/bokeh-js.component.ts << EOF import { Component, OnInit } from '@angular/core' import * as Bokeh from "@bokeh/bokehjs"; -function create_bokehjs_plot(): Bokeh.Column { - const source = new Bokeh.ColumnDataSource({data: { x: [0.1, 0.9], y: [0.1, 0.9], size: [40, 10] }}); - +function create_bokehjs_plot(): Bokeh.Plotting.Figure { + // Create figure const plot = Bokeh.Plotting.figure({ - title: "Example BokehJS plot", height: 500, width: 500, - x_range: [0, 1], y_range: [0, 1], sizing_mode: "stretch_width", + title: "Example BokehJS plot", height: 500, sizing_mode: "stretch_width" }); - plot.scatter({ field: "x" }, { field: "y" }, {source, size: { field: "size" }}); + // Calculate x, y value of sine curve + const x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + const y = x.map(x => Math.sin(Math.PI*x/6)); - const button = new Bokeh.Widgets.Button({label: "Click me to add a point", button_type: "primary"}); - function button_callback() { - const data = source.data as any; - data.x.push(Math.random()); - data.y.push(Math.random()); - data.size.push(10 + Math.random()*30); - source.change.emit(); - } - button.on_click(button_callback); + // Plot circles + plot.scatter(x, y, {color: "blue", size: 30, fill_alpha: 0.4}); - return new Bokeh.Column({children: [plot, button], sizing_mode: "stretch_width"}); + return plot; } - @Component({ selector: 'app-bokeh-js', imports: [], diff --git a/ci/typescript/create_react_vite.sh b/ci/typescript/create_react_vite.sh index 00be89e..2e7f482 100755 --- a/ci/typescript/create_react_vite.sh +++ b/ci/typescript/create_react_vite.sh @@ -66,29 +66,21 @@ import * as Bokeh from "@bokeh/bokehjs"; console.info("BokehJS version:", Bokeh.version); -function create_bokehjs_plot(): Bokeh.Column { - const source = new Bokeh.ColumnDataSource({data: { x: [0.1, 0.9], y: [0.1, 0.9], size: [40, 10] }}); - +function create_bokehjs_plot(): Bokeh.Plotting.Figure { + // Create figure const plot = Bokeh.Plotting.figure({ - title: "Example BokehJS plot", height: 500, width: 500, - x_range: [0, 1], y_range: [0, 1], sizing_mode: "stretch_width", + title: "Example BokehJS plot", height: 500, sizing_mode: "stretch_width" }); - plot.scatter({ field: "x" }, { field: "y" }, {source, size: { field: "size" }}); + // Calculate x, y value of sine curve + const x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + const y = x.map(x => Math.sin(Math.PI*x/6)); - const button = new Bokeh.Widgets.Button({label: "Click me to add a point", button_type: "primary"}); - function button_callback() { - const data = source.data as any; - data.x.push(Math.random()); - data.y.push(Math.random()); - data.size.push(10 + Math.random()*30); - source.change.emit(); - } - button.on_click(button_callback); + // Plot circles + plot.scatter(x, y, {color: "blue", size: 30, fill_alpha: 0.4}); - return new Bokeh.Column({children: [plot, button], sizing_mode: "stretch_width"}); + return plot; } - export function BokehComponent() { const shown = useRef(false); useEffect(() => { diff --git a/ci/typescript/create_vanilla_rspack.sh b/ci/typescript/create_vanilla_rspack.sh index d6c25dc..1fac0c9 100755 --- a/ci/typescript/create_vanilla_rspack.sh +++ b/ci/typescript/create_vanilla_rspack.sh @@ -109,29 +109,21 @@ import * as Bokeh from "@bokeh/bokehjs"; console.info("BokehJS version:", Bokeh.version); -function create_bokehjs_plot(): Bokeh.Column { - const source = new Bokeh.ColumnDataSource({data: { x: [0.1, 0.9], y: [0.1, 0.9], size: [40, 10] }}); - +function create_bokehjs_plot(): Bokeh.Plotting.Figure { + // Create figure const plot = Bokeh.Plotting.figure({ - title: "Example BokehJS plot", height: 500, width: 500, - x_range: [0, 1], y_range: [0, 1], sizing_mode: "stretch_width", + title: "Example BokehJS plot", height: 500, sizing_mode: "stretch_width" }); - plot.scatter({ field: "x" }, { field: "y" }, {source, size: { field: "size" }}); + // Calculate x, y value of sine curve + const x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + const y = x.map(x => Math.sin(Math.PI*x/6)); - const button = new Bokeh.Widgets.Button({label: "Click me to add a point", button_type: "primary"}); - function button_callback() { - const data = source.data as any; - data.x.push(Math.random()); - data.y.push(Math.random()); - data.size.push(10 + Math.random()*30); - source.change.emit(); - } - button.on_click(button_callback); + // Plot circles + plot.scatter(x, y, {color: "blue", size: 30, fill_alpha: 0.4}); - return new Bokeh.Column({children: [plot, button], sizing_mode: "stretch_width"}); + return plot; } - Bokeh.Plotting.show(create_bokehjs_plot(), "#target"); EOF diff --git a/ci/typescript/create_vanilla_vite.sh b/ci/typescript/create_vanilla_vite.sh index 250c280..982291b 100755 --- a/ci/typescript/create_vanilla_vite.sh +++ b/ci/typescript/create_vanilla_vite.sh @@ -43,29 +43,21 @@ import * as Bokeh from "@bokeh/bokehjs"; console.info("BokehJS version:", Bokeh.version); -function create_bokehjs_plot(): Bokeh.Column { - const source = new Bokeh.ColumnDataSource({data: { x: [0.1, 0.9], y: [0.1, 0.9], size: [40, 10] }}); - +function create_bokehjs_plot(): Bokeh.Plotting.Figure { + // Create figure const plot = Bokeh.Plotting.figure({ - title: "Example BokehJS plot", height: 500, width: 500, - x_range: [0, 1], y_range: [0, 1], sizing_mode: "stretch_width", + title: "Example BokehJS plot", height: 500, sizing_mode: "stretch_width" }); - plot.scatter({ field: "x" }, { field: "y" }, {source, size: { field: "size" }}); + // Calculate x, y value of sine curve + const x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + const y = x.map(x => Math.sin(Math.PI*x/6)); - const button = new Bokeh.Widgets.Button({label: "Click me to add a point", button_type: "primary"}); - function button_callback() { - const data = source.data as any; - data.x.push(Math.random()); - data.y.push(Math.random()); - data.size.push(10 + Math.random()*30); - source.change.emit(); - } - button.on_click(button_callback); + // Plot circles + plot.scatter(x, y, {color: "blue", size: 30, fill_alpha: 0.4}); - return new Bokeh.Column({children: [plot, button], sizing_mode: "stretch_width"}); + return plot; } - document.querySelector('#app')!.innerHTML = \`
Hello
\`; Bokeh.Plotting.show(create_bokehjs_plot(), "#target"); diff --git a/ci/typescript/create_vanilla_webpack.sh b/ci/typescript/create_vanilla_webpack.sh index 06a00e8..3329950 100755 --- a/ci/typescript/create_vanilla_webpack.sh +++ b/ci/typescript/create_vanilla_webpack.sh @@ -110,29 +110,21 @@ import * as Bokeh from "@bokeh/bokehjs"; console.info("BokehJS version:", Bokeh.version); -function create_bokehjs_plot(): Bokeh.Column { - const source = new Bokeh.ColumnDataSource({data: { x: [0.1, 0.9], y: [0.1, 0.9], size: [40, 10] }}); - +function create_bokehjs_plot(): Bokeh.Plotting.Figure { + // Create figure const plot = Bokeh.Plotting.figure({ - title: "Example BokehJS plot", height: 500, width: 500, - x_range: [0, 1], y_range: [0, 1], sizing_mode: "stretch_width", + title: "Example BokehJS plot", height: 500, sizing_mode: "stretch_width" }); - plot.scatter({ field: "x" }, { field: "y" }, {source, size: { field: "size" }}); + // Calculate x, y value of sine curve + const x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + const y = x.map(x => Math.sin(Math.PI*x/6)); - const button = new Bokeh.Widgets.Button({label: "Click me to add a point", button_type: "primary"}); - function button_callback() { - const data = source.data as any; - data.x.push(Math.random()); - data.y.push(Math.random()); - data.size.push(10 + Math.random()*30); - source.change.emit(); - } - button.on_click(button_callback); + // Plot circles + plot.scatter(x, y, {color: "blue", size: 30, fill_alpha: 0.4}); - return new Bokeh.Column({children: [plot, button], sizing_mode: "stretch_width"}); + return plot; } - Bokeh.Plotting.show(create_bokehjs_plot(), "#target"); EOF diff --git a/ci/typescript/create_vue_vite.sh b/ci/typescript/create_vue_vite.sh index 9892b8f..c744959 100755 --- a/ci/typescript/create_vue_vite.sh +++ b/ci/typescript/create_vue_vite.sh @@ -58,29 +58,21 @@ import * as Bokeh from "@bokeh/bokehjs"; const ref = useTemplateRef('target') -function create_bokehjs_plot(): Bokeh.Column { - const source = new Bokeh.ColumnDataSource({data: { x: [0.1, 0.9], y: [0.1, 0.9], size: [40, 10] }}); - +function create_bokehjs_plot(): Bokeh.Plotting.Figure { + // Create figure const plot = Bokeh.Plotting.figure({ - title: "Example BokehJS plot", height: 500, width: 500, - x_range: [0, 1], y_range: [0, 1], sizing_mode: "stretch_width", + title: "Example BokehJS plot", height: 500, sizing_mode: "stretch_width" }); - plot.scatter({ field: "x" }, { field: "y" }, {source, size: { field: "size" }}); + // Calculate x, y value of sine curve + const x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + const y = x.map(x => Math.sin(Math.PI*x/6)); - const button = new Bokeh.Widgets.Button({label: "Click me to add a point", button_type: "primary"}); - function button_callback() { - const data = source.data as any; - data.x.push(Math.random()); - data.y.push(Math.random()); - data.size.push(10 + Math.random()*30); - source.change.emit(); - } - button.on_click(button_callback); + // Plot circles + plot.scatter(x, y, {color: "blue", size: 30, fill_alpha: 0.4}); - return new Bokeh.Column({children: [plot, button], sizing_mode: "stretch_width"}); + return plot; } - onMounted(() => { console.info("BokehJS version:", Bokeh.version); Bokeh.Plotting.show(create_bokehjs_plot(), ref.value); diff --git a/example.png b/example.png new file mode 100644 index 0000000000000000000000000000000000000000..c53672e8486dbbc9f57b8168c5d3d8c7ae3f6b3c GIT binary patch literal 123024 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

m#=Ce>0%xi7C$B9jl4A(r%xPYBF(6CH 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 literal 0 HcmV?d00001 diff --git a/recipes/src/recipes/typescript/common.ts b/recipes/src/recipes/typescript/common.ts index 0689511..1697380 100644 --- a/recipes/src/recipes/typescript/common.ts +++ b/recipes/src/recipes/typescript/common.ts @@ -15,28 +15,20 @@ export const baseTypeScriptExample = { import: 'import * as Bokeh from "@bokeh/bokehjs";\n', version: 'console.info("BokehJS version:", Bokeh.version);\n', function: -`function create_bokehjs_plot(): Bokeh.Column { - const source = new Bokeh.ColumnDataSource({data: { x: [0.1, 0.9], y: [0.1, 0.9], size: [40, 10] }}); - +`function create_bokehjs_plot(): Bokeh.Plotting.Figure { + // Create figure const plot = Bokeh.Plotting.figure({ - title: "Example BokehJS plot", height: 500, width: 500, - x_range: [0, 1], y_range: [0, 1], sizing_mode: "stretch_width", + title: "Example BokehJS plot", height: 500, sizing_mode: "stretch_width" }); - plot.scatter({ field: "x" }, { field: "y" }, {source, size: { field: "size" }}); + // Calculate x, y value of sine curve + const x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + const y = x.map(x => Math.sin(Math.PI*x/6)); - const button = new Bokeh.Widgets.Button({label: "Click me to add a point", button_type: "primary"}); - function button_callback() { - const data = source.data as any; - data.x.push(Math.random()); - data.y.push(Math.random()); - data.size.push(10 + Math.random()*30); - source.change.emit(); - } - button.on_click(button_callback); + // Plot circles + plot.scatter(x, y, {color: "blue", size: 30, fill_alpha: 0.4}); - return new Bokeh.Column({children: [plot, button], sizing_mode: "stretch_width"}); -} -`, + return plot; +}`, show: (target: string = '"#target"') => 'Bokeh.Plotting.show(create_bokehjs_plot(), ' + target + ');\n' }; diff --git a/typescript/angular_ng/README.md b/typescript/angular_ng/README.md index 11fc104..6b7e72c 100644 --- a/typescript/angular_ng/README.md +++ b/typescript/angular_ng/README.md @@ -35,29 +35,21 @@ The Angular web framework includes its own builder `ng` in the `@angular/cli` pa import { Component, OnInit } from '@angular/core' import * as Bokeh from "@bokeh/bokehjs"; - function create_bokehjs_plot(): Bokeh.Column { - const source = new Bokeh.ColumnDataSource({data: { x: [0.1, 0.9], y: [0.1, 0.9], size: [40, 10] }}); - + function create_bokehjs_plot(): Bokeh.Plotting.Figure { + // Create figure const plot = Bokeh.Plotting.figure({ - title: "Example BokehJS plot", height: 500, width: 500, - x_range: [0, 1], y_range: [0, 1], sizing_mode: "stretch_width", + title: "Example BokehJS plot", height: 500, sizing_mode: "stretch_width" }); - plot.scatter({ field: "x" }, { field: "y" }, {source, size: { field: "size" }}); + // Calculate x, y value of sine curve + const x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + const y = x.map(x => Math.sin(Math.PI*x/6)); - const button = new Bokeh.Widgets.Button({label: "Click me to add a point", button_type: "primary"}); - function button_callback() { - const data = source.data as any; - data.x.push(Math.random()); - data.y.push(Math.random()); - data.size.push(10 + Math.random()*30); - source.change.emit(); - } - button.on_click(button_callback); + // Plot circles + plot.scatter(x, y, {color: "blue", size: 30, fill_alpha: 0.4}); - return new Bokeh.Column({children: [plot, button], sizing_mode: "stretch_width"}); + return plot; } - @Component({ selector: 'app-bokeh-js', imports: [], diff --git a/typescript/react_vite/README.md b/typescript/react_vite/README.md index 12bc936..03b561b 100644 --- a/typescript/react_vite/README.md +++ b/typescript/react_vite/README.md @@ -73,29 +73,21 @@ Create an initial basic project using `create-vite`. console.info("BokehJS version:", Bokeh.version); - function create_bokehjs_plot(): Bokeh.Column { - const source = new Bokeh.ColumnDataSource({data: { x: [0.1, 0.9], y: [0.1, 0.9], size: [40, 10] }}); - + function create_bokehjs_plot(): Bokeh.Plotting.Figure { + // Create figure const plot = Bokeh.Plotting.figure({ - title: "Example BokehJS plot", height: 500, width: 500, - x_range: [0, 1], y_range: [0, 1], sizing_mode: "stretch_width", + title: "Example BokehJS plot", height: 500, sizing_mode: "stretch_width" }); - plot.scatter({ field: "x" }, { field: "y" }, {source, size: { field: "size" }}); + // Calculate x, y value of sine curve + const x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + const y = x.map(x => Math.sin(Math.PI*x/6)); - const button = new Bokeh.Widgets.Button({label: "Click me to add a point", button_type: "primary"}); - function button_callback() { - const data = source.data as any; - data.x.push(Math.random()); - data.y.push(Math.random()); - data.size.push(10 + Math.random()*30); - source.change.emit(); - } - button.on_click(button_callback); + // Plot circles + plot.scatter(x, y, {color: "blue", size: 30, fill_alpha: 0.4}); - return new Bokeh.Column({children: [plot, button], sizing_mode: "stretch_width"}); + return plot; } - export function BokehComponent() { const shown = useRef(false); useEffect(() => { diff --git a/typescript/vanilla_rspack/README.md b/typescript/vanilla_rspack/README.md index 2a86fda..f5219e8 100644 --- a/typescript/vanilla_rspack/README.md +++ b/typescript/vanilla_rspack/README.md @@ -111,29 +111,21 @@ This is almost identical to the vanilla webpack example, as `rspack` is designed console.info("BokehJS version:", Bokeh.version); - function create_bokehjs_plot(): Bokeh.Column { - const source = new Bokeh.ColumnDataSource({data: { x: [0.1, 0.9], y: [0.1, 0.9], size: [40, 10] }}); - + function create_bokehjs_plot(): Bokeh.Plotting.Figure { + // Create figure const plot = Bokeh.Plotting.figure({ - title: "Example BokehJS plot", height: 500, width: 500, - x_range: [0, 1], y_range: [0, 1], sizing_mode: "stretch_width", + title: "Example BokehJS plot", height: 500, sizing_mode: "stretch_width" }); - plot.scatter({ field: "x" }, { field: "y" }, {source, size: { field: "size" }}); + // Calculate x, y value of sine curve + const x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + const y = x.map(x => Math.sin(Math.PI*x/6)); - const button = new Bokeh.Widgets.Button({label: "Click me to add a point", button_type: "primary"}); - function button_callback() { - const data = source.data as any; - data.x.push(Math.random()); - data.y.push(Math.random()); - data.size.push(10 + Math.random()*30); - source.change.emit(); - } - button.on_click(button_callback); + // Plot circles + plot.scatter(x, y, {color: "blue", size: 30, fill_alpha: 0.4}); - return new Bokeh.Column({children: [plot, button], sizing_mode: "stretch_width"}); + return plot; } - Bokeh.Plotting.show(create_bokehjs_plot(), "#target"); ``` diff --git a/typescript/vanilla_vite/README.md b/typescript/vanilla_vite/README.md index 49d7b3b..48336be 100644 --- a/typescript/vanilla_vite/README.md +++ b/typescript/vanilla_vite/README.md @@ -50,29 +50,21 @@ Create an initial basic project using `create-vite`. console.info("BokehJS version:", Bokeh.version); - function create_bokehjs_plot(): Bokeh.Column { - const source = new Bokeh.ColumnDataSource({data: { x: [0.1, 0.9], y: [0.1, 0.9], size: [40, 10] }}); - + function create_bokehjs_plot(): Bokeh.Plotting.Figure { + // Create figure const plot = Bokeh.Plotting.figure({ - title: "Example BokehJS plot", height: 500, width: 500, - x_range: [0, 1], y_range: [0, 1], sizing_mode: "stretch_width", + title: "Example BokehJS plot", height: 500, sizing_mode: "stretch_width" }); - plot.scatter({ field: "x" }, { field: "y" }, {source, size: { field: "size" }}); + // Calculate x, y value of sine curve + const x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + const y = x.map(x => Math.sin(Math.PI*x/6)); - const button = new Bokeh.Widgets.Button({label: "Click me to add a point", button_type: "primary"}); - function button_callback() { - const data = source.data as any; - data.x.push(Math.random()); - data.y.push(Math.random()); - data.size.push(10 + Math.random()*30); - source.change.emit(); - } - button.on_click(button_callback); + // Plot circles + plot.scatter(x, y, {color: "blue", size: 30, fill_alpha: 0.4}); - return new Bokeh.Column({children: [plot, button], sizing_mode: "stretch_width"}); + return plot; } - document.querySelector('#app')!.innerHTML = `

Hello
`; Bokeh.Plotting.show(create_bokehjs_plot(), "#target"); diff --git a/typescript/vanilla_webpack/README.md b/typescript/vanilla_webpack/README.md index 9d17a99..fc0934d 100644 --- a/typescript/vanilla_webpack/README.md +++ b/typescript/vanilla_webpack/README.md @@ -110,29 +110,21 @@ console.info("BokehJS version:", Bokeh.version); - function create_bokehjs_plot(): Bokeh.Column { - const source = new Bokeh.ColumnDataSource({data: { x: [0.1, 0.9], y: [0.1, 0.9], size: [40, 10] }}); - + function create_bokehjs_plot(): Bokeh.Plotting.Figure { + // Create figure const plot = Bokeh.Plotting.figure({ - title: "Example BokehJS plot", height: 500, width: 500, - x_range: [0, 1], y_range: [0, 1], sizing_mode: "stretch_width", + title: "Example BokehJS plot", height: 500, sizing_mode: "stretch_width" }); - plot.scatter({ field: "x" }, { field: "y" }, {source, size: { field: "size" }}); + // Calculate x, y value of sine curve + const x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + const y = x.map(x => Math.sin(Math.PI*x/6)); - const button = new Bokeh.Widgets.Button({label: "Click me to add a point", button_type: "primary"}); - function button_callback() { - const data = source.data as any; - data.x.push(Math.random()); - data.y.push(Math.random()); - data.size.push(10 + Math.random()*30); - source.change.emit(); - } - button.on_click(button_callback); + // Plot circles + plot.scatter(x, y, {color: "blue", size: 30, fill_alpha: 0.4}); - return new Bokeh.Column({children: [plot, button], sizing_mode: "stretch_width"}); + return plot; } - Bokeh.Plotting.show(create_bokehjs_plot(), "#target"); ``` diff --git a/typescript/vue_vite/README.md b/typescript/vue_vite/README.md index 4b8aad1..41068b0 100644 --- a/typescript/vue_vite/README.md +++ b/typescript/vue_vite/README.md @@ -65,29 +65,21 @@ Create an initial basic project using `create-vite`. const ref = useTemplateRef('target') - function create_bokehjs_plot(): Bokeh.Column { - const source = new Bokeh.ColumnDataSource({data: { x: [0.1, 0.9], y: [0.1, 0.9], size: [40, 10] }}); - + function create_bokehjs_plot(): Bokeh.Plotting.Figure { + // Create figure const plot = Bokeh.Plotting.figure({ - title: "Example BokehJS plot", height: 500, width: 500, - x_range: [0, 1], y_range: [0, 1], sizing_mode: "stretch_width", + title: "Example BokehJS plot", height: 500, sizing_mode: "stretch_width" }); - plot.scatter({ field: "x" }, { field: "y" }, {source, size: { field: "size" }}); + // Calculate x, y value of sine curve + const x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; + const y = x.map(x => Math.sin(Math.PI*x/6)); - const button = new Bokeh.Widgets.Button({label: "Click me to add a point", button_type: "primary"}); - function button_callback() { - const data = source.data as any; - data.x.push(Math.random()); - data.y.push(Math.random()); - data.size.push(10 + Math.random()*30); - source.change.emit(); - } - button.on_click(button_callback); + // Plot circles + plot.scatter(x, y, {color: "blue", size: 30, fill_alpha: 0.4}); - return new Bokeh.Column({children: [plot, button], sizing_mode: "stretch_width"}); + return plot; } - onMounted(() => { console.info("BokehJS version:", Bokeh.version); Bokeh.Plotting.show(create_bokehjs_plot(), ref.value);