如何在一个图中绘制极坐标和笛卡尔子图,如图所示

pja*_*ain 2 matplotlib cartesian subplot polar-coordinates

我想生成一个半笛卡尔半极坐标图。例如,高斯曲线的一半采用极坐标格式,另一半采用笛卡尔格式。哪个是最好的方法?

半笛卡尔半极坐标图

我尝试过共享 y 轴,但未能成功为一个图采用两种不同类型的格式。

import matplotlib.pyplot as plt
import numpy as np

theta = np.linspace(0,(np.pi)/2)
r = np.sin(theta)

fig = plt.figure()
ax = fig.add_subplot(211, polar=True)
c = ax.scatter(theta, r, c=r, s=5, cmap='hsv', alpha=0.85)

ax.set_thetamin(0)
ax.set_thetamax(90)

ax1=fig.add_subplot(212) #, sharey='ax')
fig, (c, d) = plt.subplots(ncols=2,sharey=True)
d=ax1.scatter(theta,r)
plt.show() 
Run Code Online (Sandbox Code Playgroud)

Imp*_*est 6

import matplotlib.pyplot as plt
import numpy as np

theta = np.linspace(0,(np.pi)/2)
r = np.sin(theta)

fig = plt.figure(figsize=(6.4, 3.25))
fig.subplots_adjust(wspace=0)
ax1 = fig.add_subplot(121)
ax1.grid()
ax2 = fig.add_subplot(122, polar=True)
ax2.set_thetamin(0)
ax2.set_thetamax(90)

ax1.set_ylim(0, 1.05)
ax2.set_ylim(0, 1.05)

sc1 = ax1.scatter(np.rad2deg(theta), r, c=r, s=5, cmap='hsv', alpha=0.85)
sc2 = ax2.scatter(theta,r, c=r, s=5, cmap='hsv', alpha=0.85)
plt.show() 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述