fig, axs = plt.subplots(1,2, figsize=(5.2,2.0), dpi=200, layout='constrained')
for Gr in df.Gr.unique():
for Pr in df.Pr.unique():
sdf = df[(df.Gr==Gr) & (df.Pr==Pr)].sort_values('Re')
axs[0].plot(sdf.Re/sdf.Re0, (sdf.I)/(sdf.qm + sdf.qp), marker=Pr_mark(Pr), color=Gr_col(np.log10(Gr)), markeredgecolor='k')
axs[1].plot(sdf.Re/sdf.Re0, (sdf.I)/(sdf.I + sdf.qm + sdf.qp), marker=Pr_mark(Pr), color=Gr_col(np.log10(Gr)), markeredgecolor='k')
Rr = 10**np.linspace(-1,2,101)
axs[0].loglog(Rr, 0.1*Rr**2, 'k--')
axs[1].semilogx(Rr, Rr**2/(Rr**2 + 10), 'k--')
for ax in axs:
ax.set_xlabel('$Re/Re_0$')
axs[0].set_ylabel('$\mathcal{I}/q$')
axs[1].set_ylabel('$\mathcal{I}/(\mathcal{I} + q)$')
axs[0].annotate('$\mathcal{I}/q \\approx 0.1 (Re/Re_0)^2$', (2, 2.5), rotation=35, ha='center', va='center')
axs[0].annotate('$(a)$', (-0.05, 1.05), xycoords='axes fraction', ha='right', va='bottom')
axs[1].annotate('$(b)$', (-0.05, 1.05), xycoords='axes fraction', ha='right', va='bottom')
plt.show()