1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
[[!meta title="MatplotLLM, iterative natural language data visualization in org-babel"]]
[[!meta copyright="Copyright © 2023 Abhinav Tushar"]]
[[!inline pages="internal(2023/info/matplotllm-nav)" raw="yes"]]
<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
<!-- You can manually edit this file to update the abstract, add links, etc. --->
# MatplotLLM, iterative natural language data visualization in org-babel
Abhinav Tushar (he/him) - abhinav@lepisma.xyz, https://lepisma.xyz, @lepisma@mathstodon.xyz, <mailto:abhinav@lepisma.xyz>
[[!inline pages="internal(2023/info/matplotllm-before)" raw="yes"]]
Large Language Models (LLMs) have improved in capabilities to an extent
where a lot of manual workflows can be automated by just providing
natural language instructions.
On such manual work is to create custom visualizations. I have found the
process to be really tedious if you want to make something non-standard
with common tools like matplotlib or d3. These frameworks provide low
level abstractions that you can then use to make your own
visualizations.
Earlier to make a new custom visualization, I would open two windows in
Emacs, one for code, other for the generated image. In this talk, I will
show how a powerful LLM could lead to a much more natural interface
where I only need to work with text instructions and feedback on the
currently generated plot. The system isn't perfect, but it shows us how
the future or such work could look like.
The package is called MatplotLLM and lives here
<https://github.com/lepisma/matplotllm>
About the speaker:
I am a Programmer and Machine Learning Engineer who has been in love
with Emacs' extendability from the moment I pressed M-x. Since then, I
have been doing as many things inside Emacs as I can. In this talk, I
will cover a recent attempt at automating one of my workflows inside
Emacs.
[[!inline pages="internal(2023/info/matplotllm-after)" raw="yes"]]
[[!inline pages="internal(2023/info/matplotllm-nav)" raw="yes"]]
|