Very clever. I didn't think in terms of how much space each node occupied along the circumference. That approach will give me the radius that minimizes the circumference whilst keeping the nodes legible. Which is definitely better than what I had.
But what I really want is non-linear scaling. So as the number of nodes becomes smaller, the space between them bigger. And the opposite is true when the number of nodes gets larger.
I can easily cap the upper limit on the radius so that the graph doesn't go off the screen (although the nodes may start to overlap, which is ok at that point). But I need the lower limit on the radius to converge on some constant so that a small number of nodes aren't packed together so tightly.
Does that make sense?