Someone in the r/datascience subreddit mentioned a tool called Noterous, which uses AI to generate Python notebooks and create data visualizations. The OP in the subreddit said they are using it to create Plotly visualizations more easily with AI, and since I have been spending a lot of time using Plotly, this piqued my interest. I decided to create an account and try it for myself.

When you go to create a new notebook, Noterous displays a text box where you can provide a prompt it will use to generate code for the Notebook.

Screenshot-2024-02-04-at-11-41-12.png

It was at this point that I realized Noterous generates all the project code for you, which I was really impressed by. I immediately started thinking of all the different ways I could use this tool to analyze and visualize data for different projects I’ve been thinking about. Noterous also provides a few suggestions for things it can do, and since I was so overwhelmed with ideas, I just chose the prompt “Create a webscraper that parses noterous.com then plots a wordmap” and clicked “Generate”.

Noterous generated three code snippets with all the different components needed to webscrape the noterous.com site and create a graphic of the most used words on the webpage.

Code Snippets:

Screenshot-2024-02-04-at-11-53-26.png

Graphic:

Screenshot-2024-02-04-at-11-51-08.png

After seeing this, I wanted to put Noterous to the test to do more difficult tasks. I decided to ask Noterous to webscape the Yahoo Finance Most Active Stocks table, and then analyze the data and create visualizations. Noterous generated several code snippets from the prompt, and one of the generated code snippets included an error.

Screenshot-2024-02-04-at-10-25-58.png

It was really confusing to me that the AI generated code would encounter an error and output it instead of offering an alternative solution to fix it. Looking at the stack trace it seemed to be an indentation error, something I would have expected it to recognize and fix. At the bottom of the error message is a button to “Automatically fix error”, so I clicked that hoping it would straighten itself out.

Screenshot-2024-02-04-at-12-03-46.png

Noterous reran the block of code and still produced an error, so I was not able to get it to fix the broken code block that it generated.

After asking Noterous a series of different questions with the Yahoo Finance data, I was able to get it to output Plotly code to display data visualization, but the graphs it rendered were completely nonsensical. Here is an example of a bar chart created by Noterous displaying trading volume for 25 of the most actively traded companies: Screenshot-2024-02-04-at-12-12-06.png

The y-axis of the graph is completely out of wack because Noterous made these numeric columns into Strings. I saw this again when asking it to display the % Change column for 25 of the most actively traded companies:

Screenshot-2024-02-04-at-12-14-38.png

I was a little surprised it wasn’t able to infer these columns were actually numeric. It’s not the end of the world, but it’s annoying to add an extra step to reformat the DataFrame. The Noterous code also produced an error when it generated. I tried interacting with the error to fix it, but it was at this point that I hit my free AI API call limit.

Overall I’m a bit disappointed by Noterous after trying it out of a couple hours. I thought the errors it produced were frustrating and difficult to troubleshoot. I also didn’t realize until later that when you click “Automatically fix error”, this counts against your API call limit. Behind the scenes Noterous is using ChatGPT, and I have found from my experience with ChatGPT that it doesn’t do very well working with Pandas DataFrames, unless the questions are very simple and straightforward. The one thing Noterous did do well was webscrape data from different webpages and put the data into a DataFrame. That seemed to work consistently across all the different questions I asked. Since I hit my API call limit, my initial exploration of Noterous was cut short, and while I was frustrated by my experience using Noterous, I would like to revisit it and see what else it can do.