If you are in the REPL you can go into help mode by entering a question mark on an empty line, and then write the name of a function to get the docstrings for it.

```
help?> rlocus
search: rlocus rlocusplot rlocusplot!
roots, Z, K = rlocus(P::LTISystem; K)
Compute the root locus of the SISO LTISystem P with a negative feedback loop and feedback gains
between 0 and K. rlocus will use an adaptive step-size algorithm to determine the values of the
feedback gains used to generate the plot.
roots is a complex matrix containig the poles trajectories of the closed-loop 1+k⋅G(s) as a
function of k, Z contains the zeros of the open-loop system G(s) and K the values of the
feedback gain.
```

So here you see that we generate the closed loop poles and zeros for feedback gains between 0 and K. Though, something we don’t see here but can find in the code is that you can leave K out from the call and then it will default to 500.

I also realised you would get some double labels with what I said before, so here is a better recreation of the plot. It doesn’t take care of the colors well, but I’m sure you can fix that if you want.

```
roots1, Z1, K1 = rlocus(Gid)
roots2, Z2, K2 = rlocus(Gvd)
plot(real.(roots1), imag.(roots1), label=false)
scatter!(real.(roots1)[1,:], imag.(roots1)[1,:], markershape=:xcross, label="Gid poles")
scatter!(real.(Z1), imag.(Z1), markershape=:circle, label="Gid zeros")
plot!(real.(roots2), imag.(roots2), label=false)
scatter!(real.(roots2)[1,:], imag.(roots2)[1,:], markershape=:xcross, label="Gvd poles")
scatter!(real.(Z2), imag.(Z2), markershape=:circle, label="Gvd zeros")
```