593 lines
59 KiB
Plaintext
593 lines
59 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"id": "e47a5d17-b891-49bd-9326-67a7d55b848b",
|
|
"metadata": {
|
|
"editable": false,
|
|
"slideshow": {
|
|
"slide_type": "slide"
|
|
},
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import { assertEquals } from \"jsr:@std/assert\";"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "cea43bc6-51c7-4e2a-9772-026925624173",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"const x = 1 + 2;"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "95652cce-ec3b-441d-99d1-9916574648bd",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"simple test ... \u001b[0m\u001b[32mok\u001b[0m \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n",
|
|
"\n",
|
|
"\u001b[0m\u001b[32mok\u001b[0m | 1 passed | 0 failed \u001b[0m\u001b[38;5;245m(0ms)\u001b[0m\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"Deno.test(\"simple test\", () => {\n",
|
|
" assertEquals(x, 3);\n",
|
|
"});"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"id": "3566a6a9-3fdb-44af-ab02-f85d9cad7790",
|
|
"metadata": {
|
|
"editable": true,
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import pl from \"npm:nodejs-polars\";\n",
|
|
"import { display } from \"https://deno.land/x/display@v0.1.1/mod.ts\";"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"id": "4208a600-9873-49b6-b4ca-a3ecbdca6093",
|
|
"metadata": {
|
|
"editable": true,
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"application/vnd.dataresource+json": {
|
|
"data": [
|
|
{
|
|
"ActualExpenses": 270,
|
|
"ActualIncome": 340,
|
|
"BudgetExpenses": 264,
|
|
"BudgetIncome": 332,
|
|
"Consulting": 2,
|
|
"Date": "2022-06-18",
|
|
"DiffExpenses": -6,
|
|
"DiffIncome": -8,
|
|
"Equipment": 44,
|
|
"Expenses": 270,
|
|
"Hardware": 9,
|
|
"Income": 340,
|
|
"Marketing": 47,
|
|
"NetIncome": 70,
|
|
"Office Supplies": 6,
|
|
"R&D": 44,
|
|
"Rent": 33,
|
|
"Salaries": 39,
|
|
"Software": 8,
|
|
"Utilities": 38
|
|
},
|
|
{
|
|
"ActualExpenses": 265,
|
|
"ActualIncome": 401,
|
|
"BudgetExpenses": 266,
|
|
"BudgetIncome": 403,
|
|
"Consulting": 3,
|
|
"Date": "2022-03-16",
|
|
"DiffExpenses": 1,
|
|
"DiffIncome": 2,
|
|
"Equipment": 41,
|
|
"Expenses": 265,
|
|
"Hardware": 7,
|
|
"Income": 401,
|
|
"Marketing": 40,
|
|
"NetIncome": 136,
|
|
"Office Supplies": 5,
|
|
"R&D": 32,
|
|
"Rent": 48,
|
|
"Salaries": 42,
|
|
"Software": 3,
|
|
"Utilities": 44
|
|
},
|
|
{
|
|
"ActualExpenses": 213,
|
|
"ActualIncome": 192,
|
|
"BudgetExpenses": 210,
|
|
"BudgetIncome": 189,
|
|
"Consulting": 7,
|
|
"Date": "2022-05-07",
|
|
"DiffExpenses": -3,
|
|
"DiffIncome": -3,
|
|
"Equipment": 25,
|
|
"Expenses": 213,
|
|
"Hardware": 3,
|
|
"Income": 192,
|
|
"Marketing": 26,
|
|
"NetIncome": -21,
|
|
"Office Supplies": 5,
|
|
"R&D": 28,
|
|
"Rent": 38,
|
|
"Salaries": 46,
|
|
"Software": 4,
|
|
"Utilities": 31
|
|
},
|
|
{
|
|
"ActualExpenses": 238,
|
|
"ActualIncome": 291,
|
|
"BudgetExpenses": 233,
|
|
"BudgetIncome": 296,
|
|
"Consulting": 4,
|
|
"Date": "2022-07-09",
|
|
"DiffExpenses": -5,
|
|
"DiffIncome": 5,
|
|
"Equipment": 22,
|
|
"Expenses": 238,
|
|
"Hardware": 9,
|
|
"Income": 291,
|
|
"Marketing": 32,
|
|
"NetIncome": 53,
|
|
"Office Supplies": 2,
|
|
"R&D": 37,
|
|
"Rent": 48,
|
|
"Salaries": 34,
|
|
"Software": 4,
|
|
"Utilities": 46
|
|
},
|
|
{
|
|
"ActualExpenses": 239,
|
|
"ActualIncome": 262,
|
|
"BudgetExpenses": 242,
|
|
"BudgetIncome": 268,
|
|
"Consulting": 9,
|
|
"Date": "2022-06-22",
|
|
"DiffExpenses": 3,
|
|
"DiffIncome": 6,
|
|
"Equipment": 30,
|
|
"Expenses": 239,
|
|
"Hardware": 4,
|
|
"Income": 262,
|
|
"Marketing": 36,
|
|
"NetIncome": 23,
|
|
"Office Supplies": 8,
|
|
"R&D": 24,
|
|
"Rent": 40,
|
|
"Salaries": 48,
|
|
"Software": 3,
|
|
"Utilities": 37
|
|
},
|
|
{
|
|
"ActualExpenses": 237,
|
|
"ActualIncome": 299,
|
|
"BudgetExpenses": 242,
|
|
"BudgetIncome": 292,
|
|
"Consulting": 8,
|
|
"Date": "2022-03-31",
|
|
"DiffExpenses": 5,
|
|
"DiffIncome": -7,
|
|
"Equipment": 48,
|
|
"Expenses": 237,
|
|
"Hardware": 7,
|
|
"Income": 299,
|
|
"Marketing": 33,
|
|
"NetIncome": 62,
|
|
"Office Supplies": 6,
|
|
"R&D": 20,
|
|
"Rent": 48,
|
|
"Salaries": 30,
|
|
"Software": 8,
|
|
"Utilities": 29
|
|
},
|
|
{
|
|
"ActualExpenses": 237,
|
|
"ActualIncome": 284,
|
|
"BudgetExpenses": 245,
|
|
"BudgetIncome": 293,
|
|
"Consulting": 7,
|
|
"Date": "2022-02-24",
|
|
"DiffExpenses": 8,
|
|
"DiffIncome": 9,
|
|
"Equipment": 37,
|
|
"Expenses": 237,
|
|
"Hardware": 3,
|
|
"Income": 284,
|
|
"Marketing": 41,
|
|
"NetIncome": 47,
|
|
"Office Supplies": 9,
|
|
"R&D": 38,
|
|
"Rent": 41,
|
|
"Salaries": 24,
|
|
"Software": 1,
|
|
"Utilities": 36
|
|
},
|
|
{
|
|
"ActualExpenses": 200,
|
|
"ActualIncome": 269,
|
|
"BudgetExpenses": 200,
|
|
"BudgetIncome": 270,
|
|
"Consulting": 8,
|
|
"Date": "2022-05-30",
|
|
"DiffExpenses": 0,
|
|
"DiffIncome": 1,
|
|
"Equipment": 26,
|
|
"Expenses": 200,
|
|
"Hardware": 7,
|
|
"Income": 269,
|
|
"Marketing": 32,
|
|
"NetIncome": 69,
|
|
"Office Supplies": 8,
|
|
"R&D": 25,
|
|
"Rent": 21,
|
|
"Salaries": 49,
|
|
"Software": 2,
|
|
"Utilities": 22
|
|
},
|
|
{
|
|
"ActualExpenses": 250,
|
|
"ActualIncome": 304,
|
|
"BudgetExpenses": 248,
|
|
"BudgetIncome": 316,
|
|
"Consulting": 1,
|
|
"Date": "2022-03-23",
|
|
"DiffExpenses": -2,
|
|
"DiffIncome": 12,
|
|
"Equipment": 42,
|
|
"Expenses": 250,
|
|
"Hardware": 7,
|
|
"Income": 304,
|
|
"Marketing": 30,
|
|
"NetIncome": 54,
|
|
"Office Supplies": 2,
|
|
"R&D": 49,
|
|
"Rent": 48,
|
|
"Salaries": 39,
|
|
"Software": 2,
|
|
"Utilities": 30
|
|
},
|
|
{
|
|
"ActualExpenses": 214,
|
|
"ActualIncome": 182,
|
|
"BudgetExpenses": 213,
|
|
"BudgetIncome": 185,
|
|
"Consulting": 8,
|
|
"Date": "2022-05-28",
|
|
"DiffExpenses": -1,
|
|
"DiffIncome": 3,
|
|
"Equipment": 38,
|
|
"Expenses": 214,
|
|
"Hardware": 2,
|
|
"Income": 182,
|
|
"Marketing": 32,
|
|
"NetIncome": -32,
|
|
"Office Supplies": 2,
|
|
"R&D": 27,
|
|
"Rent": 36,
|
|
"Salaries": 21,
|
|
"Software": 5,
|
|
"Utilities": 43
|
|
}
|
|
],
|
|
"schema": {
|
|
"fields": [
|
|
{
|
|
"name": "Date",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "Income",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "Expenses",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "NetIncome",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "BudgetIncome",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "ActualIncome",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "BudgetExpenses",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "ActualExpenses",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "Salaries",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "R&D",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "Marketing",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "Utilities",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "Rent",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "Equipment",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "Software",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "Hardware",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "Consulting",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "Office Supplies",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "DiffIncome",
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"name": "DiffExpenses",
|
|
"type": "integer"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"text/html": [
|
|
"<table><thead><tr><th>Date</th><th>Income</th><th>Expenses</th><th>NetIncome</th><th>BudgetIncome</th><th>ActualIncome</th><th>BudgetExpenses</th><th>ActualExpenses</th><th>Salaries</th><th>R&D</th><th>Marketing</th><th>Utilities</th><th>Rent</th><th>Equipment</th><th>Software</th><th>Hardware</th><th>Consulting</th><th>Office Supplies</th><th>DiffIncome</th><th>DiffExpenses</th></tr></thead><tbody><tr><td>2022-06-18</td><td>340</td><td>270</td><td>70</td><td>332</td><td>340</td><td>264</td><td>270</td><td>39</td><td>44</td><td>47</td><td>38</td><td>33</td><td>44</td><td>8</td><td>9</td><td>2</td><td>6</td><td>-8</td><td>-6</td></tr><tr><td>2022-03-16</td><td>401</td><td>265</td><td>136</td><td>403</td><td>401</td><td>266</td><td>265</td><td>42</td><td>32</td><td>40</td><td>44</td><td>48</td><td>41</td><td>3</td><td>7</td><td>3</td><td>5</td><td>2</td><td>1</td></tr><tr><td>2022-05-07</td><td>192</td><td>213</td><td>-21</td><td>189</td><td>192</td><td>210</td><td>213</td><td>46</td><td>28</td><td>26</td><td>31</td><td>38</td><td>25</td><td>4</td><td>3</td><td>7</td><td>5</td><td>-3</td><td>-3</td></tr><tr><td>2022-07-09</td><td>291</td><td>238</td><td>53</td><td>296</td><td>291</td><td>233</td><td>238</td><td>34</td><td>37</td><td>32</td><td>46</td><td>48</td><td>22</td><td>4</td><td>9</td><td>4</td><td>2</td><td>5</td><td>-5</td></tr><tr><td>2022-06-22</td><td>262</td><td>239</td><td>23</td><td>268</td><td>262</td><td>242</td><td>239</td><td>48</td><td>24</td><td>36</td><td>37</td><td>40</td><td>30</td><td>3</td><td>4</td><td>9</td><td>8</td><td>6</td><td>3</td></tr><tr><td>2022-03-31</td><td>299</td><td>237</td><td>62</td><td>292</td><td>299</td><td>242</td><td>237</td><td>30</td><td>20</td><td>33</td><td>29</td><td>48</td><td>48</td><td>8</td><td>7</td><td>8</td><td>6</td><td>-7</td><td>5</td></tr><tr><td>2022-02-24</td><td>284</td><td>237</td><td>47</td><td>293</td><td>284</td><td>245</td><td>237</td><td>24</td><td>38</td><td>41</td><td>36</td><td>41</td><td>37</td><td>1</td><td>3</td><td>7</td><td>9</td><td>9</td><td>8</td></tr><tr><td>2022-05-30</td><td>269</td><td>200</td><td>69</td><td>270</td><td>269</td><td>200</td><td>200</td><td>49</td><td>25</td><td>32</td><td>22</td><td>21</td><td>26</td><td>2</td><td>7</td><td>8</td><td>8</td><td>1</td><td>0</td></tr><tr><td>2022-03-23</td><td>304</td><td>250</td><td>54</td><td>316</td><td>304</td><td>248</td><td>250</td><td>39</td><td>49</td><td>30</td><td>30</td><td>48</td><td>42</td><td>2</td><td>7</td><td>1</td><td>2</td><td>12</td><td>-2</td></tr><tr><td>2022-05-28</td><td>182</td><td>214</td><td>-32</td><td>185</td><td>182</td><td>213</td><td>214</td><td>21</td><td>27</td><td>32</td><td>43</td><td>36</td><td>38</td><td>5</td><td>2</td><td>8</td><td>2</td><td>3</td><td>-1</td></tr></tbody></table>"
|
|
]
|
|
},
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"let response = await fetch(\n",
|
|
" \"https://gist.githubusercontent.com/agustinustheo/195f32a4a6c68c493056c883d959ca35/raw/c7363d8b916ab00a2d1747adb89fca120da29f42/mock_financial_data.csv\",\n",
|
|
");\n",
|
|
"\n",
|
|
"let data = await response.text();\n",
|
|
"\n",
|
|
"let df = pl.readCSV(data, { sep: \",\" });\n",
|
|
"\n",
|
|
"await display(df.sample(10));"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"id": "e5132db2-735b-4f81-9511-8e9c868bbcb2",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\u001b[32mDownloading\u001b[39m https://github.com/DjDeveloperr/skia_canvas/releases/download/0.5.8/libnative_canvas.so\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"import * as d3 from \"npm:d3\";\n",
|
|
"import { createCanvas } from \"https://deno.land/x/skia_canvas/mod.ts\";"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"id": "3f54f383-1e48-431d-926b-897c54d38601",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"{\n",
|
|
" Date: \"2022-07-19\",\n",
|
|
" Income: 316,\n",
|
|
" Expenses: 211,\n",
|
|
" NetIncome: 105,\n",
|
|
" BudgetIncome: 317,\n",
|
|
" ActualIncome: 316,\n",
|
|
" BudgetExpenses: 212,\n",
|
|
" ActualExpenses: 211,\n",
|
|
" Salaries: 29,\n",
|
|
" \"R&D\": 48,\n",
|
|
" Marketing: 20,\n",
|
|
" Utilities: 35,\n",
|
|
" Rent: 22,\n",
|
|
" Equipment: 39,\n",
|
|
" Software: 3,\n",
|
|
" Hardware: 3,\n",
|
|
" Consulting: 6,\n",
|
|
" \"Office Supplies\": 6,\n",
|
|
" DiffIncome: 1,\n",
|
|
" DiffExpenses: 1\n",
|
|
"}\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"const lastDataPoint = df.tail(1).toRecords()[0];\n",
|
|
"console.log(lastDataPoint);"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"id": "be1d2f7c-5537-4428-ab94-3410d9b07cc1",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\u001b[33m10\u001b[39m"
|
|
]
|
|
},
|
|
"execution_count": 12,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"let categories = ['Salaries', 'R&D', 'Marketing', 'Utilities', 'Rent', 'Equipment', 'Software', 'Hardware', 'Consulting', 'Office Supplies'];\n",
|
|
"\n",
|
|
"// Sample data\n",
|
|
"const sampleData1 = [];\n",
|
|
"for(let i = 0; i < categories.length; i++) {\n",
|
|
" const category = categories[i];\n",
|
|
" sampleData1.push({\n",
|
|
" category,\n",
|
|
" amount: lastDataPoint[category],\n",
|
|
" });\n",
|
|
"}"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"id": "9e6414d0-3b56-438c-be30-74080dbd706a",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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"
|
|
},
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"const width = 500;\n",
|
|
"const height = 500;\n",
|
|
"const radius = Math.min(width, height) / 2;\n",
|
|
"\n",
|
|
"// Create a pie function\n",
|
|
"const pie = d3.pie().value(d => d.amount);\n",
|
|
"\n",
|
|
"// Create an arc generator for the slices\n",
|
|
"const arc = d3.arc()\n",
|
|
" .innerRadius(0)\n",
|
|
" .outerRadius(radius);\n",
|
|
"\n",
|
|
"// Create an arc generator for the labels\n",
|
|
"const labelArc = d3.arc()\n",
|
|
" .innerRadius(radius - 40) // Adjust to position the labels\n",
|
|
" .outerRadius(radius - 40);\n",
|
|
"\n",
|
|
"// Create the canvas\n",
|
|
"const canvas = createCanvas(width, height);\n",
|
|
"const ctx = canvas.getContext(\"2d\");\n",
|
|
"\n",
|
|
"// Translate to center the pie chart\n",
|
|
"ctx.translate(width / 2, height / 2);\n",
|
|
"\n",
|
|
"// Draw the pie chart\n",
|
|
"pie(sampleData1).forEach((d, i) => {\n",
|
|
" // Draw the slice\n",
|
|
" ctx.beginPath();\n",
|
|
" arc.context(ctx)(d);\n",
|
|
" ctx.fillStyle = d3.schemeCategory10[i % 10];\n",
|
|
" ctx.fill();\n",
|
|
"\n",
|
|
" // Draw the label\n",
|
|
" ctx.fillStyle = \"#000\"; // Label color\n",
|
|
" ctx.textAlign = \"center\";\n",
|
|
" ctx.textBaseline = \"middle\";\n",
|
|
"\n",
|
|
" const centroid = labelArc.centroid(d);\n",
|
|
" ctx.fillText(d.data.category, centroid[0], centroid[1]);\n",
|
|
"});\n",
|
|
"\n",
|
|
"// Display the canvas\n",
|
|
"await display(canvas);"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "e511a773-aab3-4525-a63e-a2ba90b3f85e",
|
|
"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.8.3"
|
|
},
|
|
"toc": {
|
|
"base_numbering": 1
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|