Newer
Older
import numpy as np
import matplotlib.pyplot as plt
cm = matplotlib.cm.get_cmap("inferno", 100)
# Latex
plt.rcParams["text.latex.preamble"] = r"\usepackage{bm}"
def plot_ratio_waves_vs_Fh(ax, data=df, datab=df_proj):
ax.scatter(
data["Fh"],
c=np.log10(data["R2"]),
cmap="inferno",
edgecolors="k",
s=40,
marker="o",
label=r"Standard Navier-Stokes",
vmin=-1,
vmax=4,
)
cs = ax.scatter(
datab["Fh"],
c=np.log10(datab["R2"]),
cmap="inferno",
edgecolors="k",
s=40,
marker="^",
label=r"Without vortical modes",
vmin=-1,
vmax=4,
)
ax.set_xlim([1e-3, 20])
ax.set_xticks([1e-3, 1e-2, 1e-1, 1e0, 1e1])
ax.set_xticklabels([1e-3, 1e-2, 1e-1, 1e0, 1e1], fontsize=14)
ax.set_xscale("log")
ax.set_ylim([0, 1])
ax.set_yticks([0, 0.2, 0.4, 0.6, 0.8, 1.0])
ax.set_yticklabels(
[r"$0$", r"$0.2$", r"$0.4$", r"$0.6$", r"$0.8$", r"$1.0$"], fontsize=14
)
ax.set_xlabel(r"$F_h$", fontsize=20)
ax.set_ylabel(r"$\tilde{E}_{\rm wave}$", fontsize=20)
# ax.grid(True)
return cs
def plot_ratio_waves_vs_R(ax, data=df, datab=df_proj):
ax.scatter(
data["R2"],
c=np.log10(data["Fh"]),
cmap="inferno",
edgecolors="k",
s=40,
marker="o",
label=r"Standard Navier-Stokes",
vmin=-3,
vmax=1,
)
cs = ax.scatter(
datab["R2"],
c=np.log10(datab["Fh"]),
cmap="inferno",
edgecolors="k",
s=40,
marker="^",
label=r"Without vortical modes",
vmin=-3,
vmax=1,
)
ax.set_xlim([1e-1, 1e5])
ax.set_xticks([1e-1, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5])
ax.set_xticklabels([1e-1, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5], fontsize=14)
ax.set_xscale("log")
ax.set_ylim([0, 1])
ax.set_yticks([0, 0.2, 0.4, 0.6, 0.8, 1.0])
ax.set_yticklabels(
[r"$0$", r"$0.2$", r"$0.4$", r"$0.6$", r"$0.8$", r"$1.0$"], fontsize=14
)
ax.set_xlabel(r"$\mathcal{R}$", fontsize=20)
ax.set_ylabel(r"$\tilde{E}_{\rm wave}$", fontsize=20)
# ax.grid(True)
return cs
fig, axes = plt.subplots(
nrows=1, ncols=2, figsize=(10, 1.2 * 3 * 4.5 / 4), constrained_layout=True
ax0 = axes[0]
ax1 = axes[1]
cs0 = plot_ratio_waves_vs_Fh(ax0, data=df, datab=df_proj)
cs1 = plot_ratio_waves_vs_R(ax1, data=df, datab=df_proj)
# Emphasizing the points (N,Rb) = (40,20)
df_L = df[df["N"] == 40]
df_L = df_L[df_L["Rb"] == 20]
df_L_proj = df_proj[df_proj["N"] == 40]
df_L_proj = df_L_proj[df_L_proj["Rb"] == 20]
ax0.scatter(
df_L["Fh"],
edgecolors="r",
facecolors="none",
s=60,
marker="s",
linewidths=2,
)
ax0.scatter(
df_L_proj["Fh"],
df_L_proj["ratio Ewaves"],
edgecolors="r",
facecolors="none",
s=60,
marker="s",
linewidths=2,
)
ax1.scatter(
df_L["R2"],
edgecolors="r",
facecolors="none",
s=60,
marker="s",
linewidths=2,
)
ax1.scatter(
df_L_proj["R2"],
df_L_proj["ratio Ewaves"],
edgecolors="r",
facecolors="none",
s=60,
marker="s",
linewidths=2,
ax0.set_title(r"$\rm (a)$", fontsize=20)
ax1.set_title(r"$\rm (b)$", fontsize=20)
ax1.set_yticklabels("")
ax1.set_ylabel("")
fig.tight_layout()
cbar = fig.colorbar(cs0, ax=ax0, orientation="vertical")
cbar.set_ticks([-1, 0, 1, 2, 3, 4])
cbar.set_ticklabels(
[r"$-1$", r"$0$", r"$1$", r"$2$", r"$3$", r"$4$"], fontsize=14
fig.text(0.42, 0.07, r"$\log_{10} \mathcal{R}$", fontsize=20)
cbar = fig.colorbar(cs1, ax=ax1, orientation="vertical")
cbar.set_ticks([-3, -2, -1, 0, 1])
cbar.set_ticklabels([r"$-3$", r"$-2$", r"$-1$", r"$0$", r"$1$"], fontsize=14)
fig.text(0.88, 0.07, r"$\log_{10} F_h$", fontsize=20)