D. LaRocque
D. LaRocque

Reputation: 437

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 ?

Upvotes: 2

Views: 3155

Answers (2)

Ash
Ash

Reputation: 4718

This is not a bug, you just have to set the limit of the r axis :

ax.set_rlim(0,2)

This gives the correct result

enter image description here

Upvotes: 3

Andrey Tyukin
Andrey Tyukin

Reputation: 44908

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.

Upvotes: 5

Related Questions