shortcuts/notebooks/deno_tinygo_wasm.ipynb
2024-09-30 22:41:48 +02:00

90 lines
31 KiB
Plaintext
Vendored

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Regressions\n",
"\n",
"$X = (0,1)$\n",
"\n",
"$Y = sin(2\\pi X)$"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"![name](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqAAAAGACAIAAAD9Gkc5AABXGElEQVR4nOzdB3RUddo/8Gd6S5vJzKT30AIJ3YTQRYRVREUsgIorLui6suwuun91dZFd993XtrbXLeoCghJEpAsooKAQmkAIKZSUSS+TPkmmz/9MhgwQQkiZmTvl+zlzOHPv3Ln3SbiZZ36da7FYCAAAALwLl+kAAHyORqPx8/O7do/JZOJwOC64dLcX2rt374EDByQSyapVq1wQAwC4BpvpAAB8RVVV1cKFC++5557f/e5399xzz/Dhw8+ePWt7afLkycuWLXN2ACqVKjAwcNeuXV32z549OzQ0dNOmTV32f/vttw8++KBIJJo0adJdd901ocOiRYt+/vlnZ4cKAAOHBA/gIo899lhiYuLOnTs//vjjnTt3Llq0qLGx0fbS008//eCDDzo7gNDQ0JUrV44ePbqXx995553PPvusVqv961//+s0332RmZu7bty8kJCQ1NfXPf/5zz+/dvXu30Wh0RNQA0E+oogdwBYvFcvjw4UWLFtn3LFiwgM/n254//vjjN3sXi8Xq5flvPLLLToFAcGMlvO0YNpvdbXcc29vtJwkICHjnnXeMRuNf//rX2bNnT5gwodtgdDrdU089VVxczOXiEwaAMSjBA7gCi8WKi4t79dVXDx8+bNsTFxcXERFBRPv3758zZ85vf/tbIrp06dIjjzxy3333vfDCCyNGjBCLxbaUfOLEiblz5z777LNEVFRU9Lvf/S45Obm9vZ2Ivvzyy/T09CeeeGLatGk7d+605ex333139uzZtp0ffvih7YoffvjhmDFjtm/fbtu8ePHizJkz77777ieffPLLL7/s9puELet3yf2rV682m82fffYZETU0NEyZMmXBggW33377Pffc09raWl1d/cQTT1RVVT322GNvvPEGEf3nP/+ZOXPmY489lpycvHbtWuf/sgGggwUAXGLfvn22vnXDhw9/++23W1pa7C8tWbLk3nvvtT1ftWpVSkqKVqs1m82rVq1is9kajcZisTz99NNz5syxHfPTTz/ZOusZDAaxWHzq1CmLxVJYWLhjxw6LxfLFF19ERkba3lVbWxsUFPTVV1/Z3hgcHLxmzRqLxaLX62NjY1etWmXb/9Zbbw0dOvTGmH/44Qci+uGHH7rsj4yMnD59usViqamp+eijjywW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)"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"// deno-lint-ignore-file\n",
"\n",
"import { display } from \"https://deno.land/x/display@v0.1.1/mod.ts\";\n",
"import pl from \"npm:nodejs-polars\";\n",
"import plot from \"../plot/mod.ts\";\n",
"\n",
"const data = await Deno.readTextFile(\"assets/X_Y_Sinusoid_Data.csv\");\n",
"const df = pl.readCSV(data, { sep: \",\" });\n",
"\n",
"const real = pl.DataFrame({ x: new Array(100).fill(0).map((_, i) => i / 100)}).select(\n",
" pl.col('x'),\n",
" pl.col('x').mul(2).mul(3.14).sin().alias('y')\n",
");\n",
"\n",
"const draw = (x, y, title = \"Sinusoid Data\") => \n",
" plot.DrawPlot(\n",
" { \n",
" title,\n",
" width: 7,\n",
" height: 4,\n",
" XLabel: \"X\", \n",
" YLabel: \"Y\", \n",
" }, \n",
" { type: \"line\", data: [real.x, real.y], legend: \"Sinusoid\", lineDashes: [3, 4], lineColor: \"#ff8888\", lineWidth: 1 },\n",
" { type: \"scatter\", data: [x, y], legend: \"Data\", lineDashes: [3, 4], lineWidth: 2, glyphColor: \"#4444ff\", glyphShape: \"circle\" },\n",
" { type: \"trend\", data: [x, y], legend: \"Trend\", lineDashes: [4, 2], lineColor: '#aacccc', lineWidth: .5 },\n",
" );\n",
"\n",
"\n",
"draw(df.x, df.y);"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Deno",
"language": "typescript",
"name": "deno"
},
"language_info": {
"codemirror_mode": "typescript",
"file_extension": ".ts",
"mimetype": "text/x.typescript",
"name": "typescript",
"nbconvert_exporter": "script",
"pygments_lexer": "typescript",
"version": "5.6.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}