Reputation: 21
I want to generate one plot which is half cartesian and half polar. for e.g. gaussian curve half side in polar format and other half in cartesian format. which is the best way?
I have tried with sharing y axis but not succesful in taking two different types formats for one plot.
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()
Upvotes: 2
Views: 5124
Reputation: 339715
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()
Upvotes: 7