I'm trying to create a polar projection using matplotlib.pyplot.subplots()
but I get the error projection is not defined
when I try to pass a dictionary to matplotlib.pyplot.subplots()
My code:
import matplotlib.pyplot as plt
fig, ax = plt.subplots(nrows=1, ncols=2, subplot_kw={projection:'polar'})
However plt.subplot(1,1,1, projection='polar')
works as expected. The documentation for plt.subplots()
says that the dictionary in subplot_kw
will be passed to add.subplot()
which takes projection as a optional parameter so I'm not sure what my mistake is.
The docs that you linked don't actually show subplot_kw
being used in that way. What they show is calling dict()
:
fig, axes = plt.subplots(2, 2, subplot_kw=dict(polar=True))
If you print the output of subplot_kw=dict(polar=True)
, you get:
{'polar': True}
Notice that polar
has now become a string. subplot_kw={projection:'polar'})
does not define projection
as a string, it's just a variable name that Python now has to look up (and it won't find it in this case, but it may find something else in other cases).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With