Skip to content

Commit

Permalink
feat: add charting (#44)
Browse files Browse the repository at this point in the history
* Changed font and added caps to stitch legend

* Saving before changing chart

* chart boxes correct width, centred text

* 2d charting added

* colour plotting

* Added initial PNG symbols

* added row numbers, fixed type hints

* Added cowl cable pattern, got tests passing again
  • Loading branch information
sorla committed May 12, 2022
1 parent 5ca4915 commit 736c37f
Show file tree
Hide file tree
Showing 38 changed files with 476 additions and 83 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -130,3 +130,6 @@ dmypy.json

# Pyre type checker
.pyre/

# Folder with images in
.pyknit/symbols/
90 changes: 90 additions & 0 deletions documentation/CowlCable.ipynb

Large diffs are not rendered by default.

81 changes: 72 additions & 9 deletions documentation/TriangleHat.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -137,13 +137,43 @@
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "cbea7a2496c94394983a9bdf9d554a0d",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"VBox(children=(ColorPicker(value='#616161', description='Main color'), ColorPicker(value='#dcd618', descriptio…"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from ipywidgets import ColorPicker, VBox\n",
"\n",
"main_color = ColorPicker(value=\"#616161\", description=\"Main color\")\n",
"a_color = ColorPicker(value=\"#dcd618\", description=\"Color A\")\n",
"b_color = ColorPicker(value=\"#66ccff\", description=\"Color B\")\n",
"c_color = ColorPicker(value=\"#db7575\", description=\"Color C\")\n",
"VBox((main_color, a_color, b_color, c_color))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"# create a stitch legend for when we get to charts\n",
"stitch_legend = {\n",
" \"k\": {\n",
" \"instruction\": \"knit with main colour\",\n",
" \"symbol\": \" \",\n",
" \"symbol\": main_color.value,\n",
" \"width\": 1,\n",
" },\n",
" \"p\": {\n",
Expand All @@ -159,17 +189,17 @@
" # Colours\n",
" \"a\": {\n",
" \"instruction\": \"knit with colour A\",\n",
" \"symbol\": \"A\",\n",
" \"symbol\":a_color.value,\n",
" \"width\": 1,\n",
" },\n",
" \"b\": {\n",
" \"instruction\": \"knit with colour B\",\n",
" \"symbol\": \"B\",\n",
" \"symbol\": b_color.value,\n",
" \"width\": 1,\n",
" },\n",
" \"c\": {\n",
" \"instruction\": \"knit with colour C\",\n",
" \"symbol\": \"C\",\n",
" \"symbol\": c_color.value,\n",
" \"width\": 1,\n",
" },\n",
"\n",
Expand All @@ -178,7 +208,7 @@
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
Expand Down Expand Up @@ -206,7 +236,40 @@
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"12 rows, 8 sts wide at max\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<PIL.Image.Image image mode=RGB size=400x600>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Let's see what that looks like\n",
"# Not got the parsing right yet, so a bit of copy paste\n",
"pattern = \"\\n\".join([\"a7, k1\",\"k1, a5, k2\",\"k2, a3, k3\",\"k3, a1, k4\",\"b3, k1, b4\",\"b2, k3, b3\",\"b1, k5, b2\",\"k7, b1\",\"c7, k1\",\"k1, c5, k2\",\"k2, c3, k3\",\"k3, c1, k4\"])\n",
"parsed = pyknit.parse_chart(pattern, legend=stitch_legend)\n",
"pyknit.plot_chart(parsed, lr_direction=\"rl\", tb_direction=\"bt\")\n",
"#print(pattern)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -220,7 +283,7 @@
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -233,7 +296,7 @@
},
{
"cell_type": "code",
"execution_count": 11,
"execution_count": 13,
"metadata": {},
"outputs": [
{
Expand Down Expand Up @@ -345,7 +408,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.6"
"version": "3.9.5"
}
},
"nbformat": 4,
Expand Down

0 comments on commit 736c37f

Please sign in to comment.