Search code examples
pythonpython-3.xmatplotlibpolar-coordinates

Polar plot in Matplotlib not centered


For some reasons, when I try to plot (theta = 0, r = 0) using the following code :

import matplotlib.pyplot as plt

plt.polar(0, 0, marker='x')
plt.show()

The point is not centered :

polarplot with center

I was able to reproduce this error multiple times on my computer and on Repl.it : Link

So, how can I center the polar plot, so that the x shows in the center of it ?


Solution

  • It's "centered", but the radius starts at a negative value, something around -0.04 in your case. Try setting rmin after you have plotted your point:

    import matplotlib.pyplot as plt
    
    ax = plt.subplot(111, projection='polar')
    ax.plot([0], [0], marker = 'x')
    ax.set_rmax(5)
    ax.set_rmin(0)
    plt.show()
    

    This gives a single little x exactly in the middle of the circle with radius 5.

    The problem usually does not appear if you plot multiple points with many interesting values, because it then sets the radius range to more sane defaults.