Does this seem complicated? It’s okay if the code seems a little difficult to understand at first. That’s okay.
It’s probably obvious to you that this is basically a scatte rplot. (If you haven’t read about how to build a scatte rplot in r then it might be instructive to start there.)
What might not be obvious is that the code to create a scatter plot vs a bubble chart in R (using ggplot) is almost identical.
To illustrate that point, let’s look at the code first.