diff --git a/plots/filling_transition/filling_transition_data b/plots/filling_transition/filling_transition_data
new file mode 100644
index 0000000000000000000000000000000000000000..ac41fd5311b2c8ac6e3b744c0563d6520de7ae99
Binary files /dev/null and b/plots/filling_transition/filling_transition_data differ
diff --git a/plots/filling_transition/fillling_transition.py b/plots/filling_transition/fillling_transition.py
new file mode 100755
index 0000000000000000000000000000000000000000..5cc853e75ba0ad76c938d2b8f90d8020f235bdb7
--- /dev/null
+++ b/plots/filling_transition/fillling_transition.py
@@ -0,0 +1,85 @@
+import numpy as np
+import os
+import sys
+import matplotlib.pyplot as plt
+import matplotlib
+import h5py
+
+sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
+import colors
+
+matplotlib.rc('font', **{'family': 'serif', 'serif': ['Computer Modern Roman'],
+                         'size': 8})
+matplotlib.rc('text', usetex=True)
+matplotlib.rc('text.latex', preamble=r'\usepackage{amsmath}'
+                + r'\usepackage{braket}' + r'\usepackage{amssymb}'
+                + r'\newcommand{\bvec}[1]{\boldsymbol{#1}}')
+
+fig_width = 3.4039
+fig_height = fig_width
+
+fig, axs = plt.subplots(3, 1, figsize=(fig_width, fig_height), sharex=True,
+                        gridspec_kw={'hspace': 0.05})
+
+
+data = h5py.File('filling_transition_data', 'r')
+filling = data['filling'][:]
+lamc = data['lamc'][:]
+chern = data['chern'][:]
+gap = data['gap'][:]
+shell_ratios = data['shell_ratios'][:]
+
+m = 3
+lim_factor = 1.2
+
+axs[0].semilogy(filling, lamc, '.', c=colors.first, markersize=m)
+axs[0].set_ylabel(r'$\Lambda_c$')
+axs[0].tick_params(bottom=False, labelbottom=False)
+
+axs[1].plot(filling[np.abs(chern) == 4], gap[np.abs(chern) == 4], '.',
+            c=colors.first, markersize=m, label = '$C=4$')
+axs[1].plot(filling[np.abs(chern) == 8], gap[np.abs(chern) == 8], '.',
+            c=colors.third, markersize=m, label='$C=8$')
+axs[1].set_ylabel(r'$E$')
+axs[1].set_ylim([0,lim_factor*np.amax(gap)])
+axs[1].tick_params(bottom=False, labelbottom=False)
+axs[1].legend()
+
+cols = [colors.first, colors.third, colors.second, colors.third]
+for jj in range(3):
+    axs[2].plot(filling, np.abs(shell_ratios[:,jj]), '.',
+                c=cols[jj], markersize=m)
+axs[2].set_ylim([-0.05,1.05])
+axs[2].set_ylabel(r'$\eta$')
+axs[2].set_xlabel(r'$\nu$')
+
+for ii in range(3):
+    axs[ii].vlines([0.445], axs[ii].get_ylim()[0], axs[ii].get_ylim()[1],
+                   colors=colors.gray, linestyle='--', linewidth=1)
+    axs[ii].set_xlim([np.amin(filling)-0.001, np.amax(filling)+0.001])
+
+
+
+# for ii in range(3):
+
+
+#     # Fix y axes
+#     axs[ii].tick_params(left=False, labelleft=False, bottom=False,
+#                         labelbottom=False)
+#     axs[ii].set_ylabel(r'$E$')
+
+#     # Fixing the ylim relative to the gap boundaries
+#     lim_factor = 1.5
+#     axs[ii].set_ylim([lim_factor * gap_lower_edge,
+#                       lim_factor * gap_upper_edge])
+
+#     axs[ii].set_xlim([-np.pi, np.pi])
+
+# # Fix x axis
+# axs[3].tick_params(bottom=True, labelbottom=True)
+# axs[3].set_xticks([-np.pi, -0.5 * np.pi, 0, 0.5 * np.pi, np.pi],
+#                     labels=[r'$-\pi$', r'$-\frac{\pi} 2$', r'$0$',
+#                             r'$\frac{\pi} 2$', r'$\pi$'])
+# axs[3].set_xlabel(r'$k/a$')
+
+fig.savefig('filling_transition.pdf', bbox_inches="tight")