{ "cells": [ { "cell_type": "markdown", "id": "5a3a3e8b-b14d-48f7-9dfc-192df5da60f5", "metadata": {}, "source": [ "# Deno 2 + Jupyter Demo" ] }, { "cell_type": "markdown", "id": "c8daaf0b-b428-4f31-8e53-fa6076da3d8c", "metadata": {}, "source": [ "## Create a chart with observable plot\n", "\n", "https://observablehq.com/plot/" ] }, { "cell_type": "code", "execution_count": 1, "id": "62f2b479-ff39-4123-984f-861ea0119ff6", "metadata": {}, "outputs": [], "source": [ "import * as Plot from \"npm:@observablehq/plot\"" ] }, { "cell_type": "code", "execution_count": 2, "id": "87882fe4-54a2-4b71-9a5b-6036582b79e1", "metadata": {}, "outputs": [], "source": [ "import * as d3 from \"npm:d3\"" ] }, { "cell_type": "code", "execution_count": 3, "id": "7b1633ae-7604-4169-8fdc-9d18eb481949", "metadata": {}, "outputs": [], "source": [ "// Borrowed from https://jsr.io/@ry/jupyter-helper/0.2.0/mod.ts#L6\n", "\n", "// Another option? https://blog.logrocket.com/deno-jupyter-notebook-data-dashboard/\n", "\n", "import { DOMParser } from \"npm:linkedom@0.18\";\n", "\n", "const document: any = new DOMParser().parseFromString(\n", " ``,\n", " \"text/html\",\n", ");" ] }, { "cell_type": "code", "execution_count": 4, "id": "26cf1e00-0ff3-4593-a4dc-1a45ab855f55", "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Plot.rectY({length: 10000}, Plot.binX({y: \"count\"}, {x: d3.randomNormal(), fill: \"blue\"})).plot({ document })" ] }, { "cell_type": "markdown", "id": "fd9d0b73-8fff-43c1-bed7-37b669df1f6c", "metadata": {}, "source": [ "## Use a Polars DataFrame" ] }, { "cell_type": "code", "execution_count": 5, "id": "7fa4515e-f131-498d-a3ee-908c93892e52", "metadata": {}, "outputs": [], "source": [ "import pl from \"npm:nodejs-polars@0.14\";" ] }, { "cell_type": "code", "execution_count": 6, "id": "3ee7f72e-bd22-40d1-b066-bfb31ec0721a", "metadata": {}, "outputs": [], "source": [ "const df = pl.DataFrame(\n", "{\n", " A: [1, 2, 3, 4, 5],\n", " fruits: [\"banana\", \"banana\", \"apple\", \"apple\", \"banana\"],\n", " B: [5, 4, 3, 2, 1],\n", " cars: [\"beetle\", \"audi\", \"beetle\", \"beetle\", \"beetle\"],\n", " }\n", ")" ] }, { "cell_type": "code", "execution_count": 7, "id": "302854c2-6368-4762-9732-ec826f4fffc0", "metadata": {}, "outputs": [ { "data": { "application/vnd.dataresource+json": { "bytes": null, "data": [ { "A": 1, "B": 5, "cars": "beetle", "fruits": "banana" }, { "A": 2, "B": 4, "cars": "audi", "fruits": "banana" }, { "A": 3, "B": 3, "cars": "beetle", "fruits": "apple" }, { "A": 4, "B": 2, "cars": "beetle", "fruits": "apple" }, { "A": 5, "B": 1, "cars": "beetle", "fruits": "banana" } ], "description": null, "dialect": null, "encoding": null, "format": null, "hash": null, "homepage": null, "licenses": null, "mediatype": null, "path": null, "schema": { "fields": [ { "constraints": null, "description": null, "example": null, "format": null, "name": "A", "rdfType": null, "title": null, "type": "number" }, { "constraints": null, "description": null, "example": null, "format": null, "name": "fruits", "rdfType": null, "title": null, "type": "string" }, { "constraints": null, "description": null, "example": null, "format": null, "name": "B", "rdfType": null, "title": null, "type": "number" }, { "constraints": null, "description": null, "example": null, "format": null, "name": "cars", "rdfType": null, "title": null, "type": "string" } ], "foreignKeys": null, "missingValues": null, "primaryKey": null }, "sources": null, "title": null }, "text/html": [ "
| A | fruits | B | cars |
|---|---|---|---|
| 1 | banana | 5 | beetle |
| 2 | banana | 4 | audi |
| 3 | apple | 3 | beetle |
| 4 | apple | 2 | beetle |
| 5 | banana | 1 | beetle |