python-draw-svg
Berawal dari adanya fitur untuk menampilkan diagram Mermaid dalam IPython Notebook yang sayangnya hasilnya belum dapat dilihat saat berkas diunggah ke GitHub akan tetapi dapat dilihat di nbviewer [1]. Mermaid menggambarkan diagram alir dan grafik berbasis SVG menggunakan bentuk Markdown [2]. Menggambar di IPython Notebook agar hasilnya dapat dilihat saat berkasnya diunggah ke GitHub salah satunya adalah dengan menggunakan Matplotlib, di mana gambar dengan Matplotlib ini juga dapat disimpan juga dalam format SVG [3]. Untuk menggambar bentuk-bentuk yang lebih bebas dengan SVG dengan Python dapat digunakan paket PyCairo [4], yang saat digunakan dalam IPython Notebook menghasilkan berkas dalam format PNG agar dapat terlihat hasilnya di nbviewer [5], atau dapat pula dengan menyimpan hasilnya dalam format PNG dan SVG menggunakan inline display, yang sayangnya masih terdapat catatan bahwa hasil render SVG tidak didukung pada tempat yang sama [6], suatu informasi yang belum dipahami. Ada juga cara lain dengan menggunakan fungsi BytesIO [7]. Perlu dicoba untuk melihat pendekatan mana yang membuat hasil penggambarkan dengan format SVG dapat terlihat pada berkas yang diunggah ke GitHub. Hal ini yang menjadi tujuan tulisan ini.
notes#
- Nicholas Bollweg, “Embedded Mermaid diagrams in the IPython Notebook”, GitHub Gist, 10 Mar 2015, url https://gist.github.com/bollwyvl/e51b4e724f0b82669c84 [20220623].
- Pat Godfrey, “Mermaid, Graph Building with Markdown”, Learning Too, 1 Nov 2019, url https://www.learningtoo.eu/articles/mermaid.htm [20220623].
- Maxim Maeder, “Save Plot as SVG File in Matplotlib”, Delf Stack, 12 Apr 2022, url https://www.delftstack.com/howto/matplotlib/save-plot-as-svg-file-in-matplotlib/ [20220623].
- ayush12arora, “PyCairo – Drawing the outline”, GeeksforGeeks, 12 Nov 2020, url https://www.geeksforgeeks.org/pycairo-drawing-the-outline/ [20220623].
- Synthetik, “Working with Cairo in your Jupyter Notebook”, Haiku Tech Center, 28 Apr 2020, url https://www.haikutechcenter.com/2020/04/working-with-cairo-in-your-jupyter.html [20220623].
- Nick Wan, “Make a simple inline display for your outputs”, GitHub, 19 Sep 2018, url https://nickwan.github.io/inline-display/ [20220623].
- Ned Batchelder, “Drawing Cairo SVG in a Jupyter notebook”, nedbatchelder, 27 Jan 2019, url https://nedbatchelder.com/blog/201901/drawing_cairo_svg_in_a_jupyter_notebook.html [20220623].