Comparing AI Models for Visualising Data

Author

Filip Reierson

Published

July 15, 2025

In this article I look at how well current AI models can visualise simple data. To make it interesting I am using real data on the most common first names of MOA Benchmarking users. The top five most common first names are summarised in . I asked a few AI chatbots to have a go at visualising the data. The results were more varied than I expected and I found that each model had its own strengths and weaknesses.

Table 1: Top five most common first names among MOA Benchmarking users as of 14th of July 2025.
FirstName n
Michelle 153
Sarah 128
Karen 116
Lisa 100
Julie 91

Prompt

Can you visualise this data?
FirstName,n
Michelle,153
Sarah,128
Karen,116
Lisa,100
Julie,91

Claude (Sonnet 4)

Visualisation technology: Recharts (javascript).

Good

  • Claude visualises the data inside of the chat client, so I didn’t have to run any code.
  • The chart was interactive, allowing me to hover over bars to see the counts.

Bad

  • x-axis labels are on an angle making them harder to read.
  • The y-axis doesn’t have a title.
  • I would also avoid vertical grid lines for this bar chart as they don’t improve readability.

ChatGPT (GPT-4o)

Visualisation technology: matplotlib (Python).

Good

  • Sensible use of axis titles.
  • Clean presentation.

Bad

  • I had to run the Python code myself.
  • The plot looks a bit boring.

ChatGPT (DALL-E 3)

Visualisation technology: ChatGPT-4o image generation powered by DALL-E 3.

Good

  • Funny results.

Bad

  • One of the names is dropped.
  • Bars line up with incorrect grid lines, indicating we can’t trust this plot.
  • x-axis title is unnecessary.
  • y-axis title should be more descriptive than “n”.

Gemini (2.5 Pro)

Visualisation technology: matplotlib (Python).

Good

  • Gemini is able to run Python code, so I did not have to run any code myself.
  • Gemini shares the code used, which is quite readable. It was easy to modify the code to make improvements.

Bad

  • x-axis labels are on an angle making them harder to read.
  • x-axis title is unnecessary.
  • y-axis title should be more descriptive than “n”.

My attempt without AI

Code
library(tidyverse)
library(showtext)
font_add('Neue-Montreal', regular = here::here('fonts/NeueMontreal-Regular.otf'), 
         bold = here::here('fonts/NeueMontreal-Bold.otf'))
showtext::showtext_auto(enable = TRUE)
top5 |>
  ggplot(aes(fct_reorder(FirstName,n), n)) +
    geom_bar(stat='identity', width = .8, fill='#432585') +
    geom_text(aes(y=0,label=FirstName),nudge_y=2,hjust=0,
              fontface = 'bold',family = 'Neue-Montreal',
              size=10, colour='white') +
    labs(y='Count') +
    labs(title='The Five Most Common First Names Among MOA Benchmarking Users') +
    theme_minimal(base_size = 22, base_family = 'Neue-Montreal') +
    scale_y_continuous(breaks = scales::breaks_pretty(n=7)) +
    scale_x_discrete(labels=paste0(5:1,'.')) +
    theme(axis.title.y.left = element_blank(),
          axis.text.y = element_text(margin=margin(r=-15), family = 'Neue-Montreal'),
          panel.grid.major.y = element_blank(),
          plot.title = element_text(face='bold', size=26, family = 'Neue-Montreal',
                                    margin=margin(b=20)),
          axis.title.x.bottom = element_text(margin=margin(t=15)),
          plot.margin = margin(r=20),
          plot.title.position = 'plot') +
    coord_flip()

Visualisation technology: ggplot2 (R).

I tried to make the graph eye catching while avoiding unnecessary grid lines.

Conclusion

At the time of writing, my main takeaways are:

  • I would recommend Claude if you want to analyse data within the chat interface.
  • I would recommend Gemini for preparing shareable graphs if you don’t want to run code on your computer.
  • If you are able to run the code yourself then any mainstream LLM chat interface will likely work fine, but in this experiment I would say ChatGPT (GPT-4o) produced the best results.
  • ChatGPT-4o image generation (DALL-E 3) is unsuitable for graphing as it hallucinates and the process isn’t transparent.
  • Using ggplot2 or your graphing library of choice without AI is still powerful and satisfying.

These tools are developing rapidly, so my findings may not be relevant a year from now. However, I think it is worth keeping an eye on this space as there is clearly great potential.