简体   繁体   中英

How do I add cartesian axes to a polar plot in matplotlib?

I have a polar contour plot, and I want to add cartesian axes to it. How can I do this? There seems to be no documentation for this.

import numpy as np
import matplotlib.pyplot as plt

def f(x, y):
    return np.sin(x) ** 10 + np.cos(10 + y * x) * np.cos(x)

x = np.linspace(0, 8, 50)
y = np.linspace(0, 8, 40)

X, Y = np.meshgrid(x, y)
Z = f(X, Y)

fig, ax = plt.subplots(subplot_kw = dict(projection = 'polar'))
plt.axis('off')
ax.contourf(X, Y, Z)

To add cartesian axes to a polar plot, all you have to do is add a second pair of axes at the same position like so:

import numpy as np
import matplotlib.pyplot as plt

def f(x, y):
    return np.sin(x) ** 10 + np.cos(10 + y * x) * np.cos(x)

x = np.linspace(0, 8, 50)
y = np.linspace(0, 8, 40)

X, Y = np.meshgrid(x, y)
Z = f(X, Y)

fig, ax = plt.subplots(subplot_kw = dict(projection = 'polar'))
plt.axis('off')
ax.contourf(X, Y, Z)

new_axis = fig.add_axes(ax.get_position(), frameon = False)
new_axis.plot()
plt.show()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM