This is my favorite
import matplotlib.pyplot as plt
x = range(10)
y = range(10)
fig, ax = plt.subplots(nrows=2, ncols=2)
for row in ax:
for col in row:
col.plot(x, y)
plt.show()
fig= plt.figure(figsize=(12,10))
for index,(each,c) in enumerate(zip(df2['newrank2'].unique(),['g','y','r','m','b'])):
ax = fig.add_subplot(3,2,index+1)
ax.scatter(x=df2.query("newrank2== @each")['totalq'],y=df2.query("newrank2== @each")['totalsales'],color =c,alpha =0.9,edgecolors ='black',label=each)
ax.legend()
ax.set_xlabel('totalq')
ax.set_ylabel('totalsales')
# ax.set_title(each)
ax.set_ylim((0,1000))
ax.set_xlim((0,80))
fig= plt.figure()
ax = plt.axes()
for each,c in zip(df2['newrank2'].unique(),['g','y','r','m','b']):
ax.scatter(x=df2.query("newrank2== @each")['totalq'],y=df2.query("newrank2== @each")['totaldisc'],color =c,alpha =0.5,edgecolors ='black',label=each)
ax.legend()
ax.set_xlabel('totalq')
ax.set_ylabel('totaldisc')
# ax.set_title(each)
ax.set_ylim((0,1000))
ax.set_xlim((0,80))
plt.subplot(221)
# equivalent but more general
ax1=plt.subplot(2, 2, 1)
# add a subplot with no frame
ax2=plt.subplot(222, frameon=False)
# add a polar subplot
plt.subplot(223, projection='polar')