in scripts/metadata_to_text.py [0:0]
def visualize_bins_to_text(values_1, values_2, name_1, name_2, text_bins, save_dir, output_column_name, default_bins=100, lower_range=None):
# Save both histograms into a single figure
fig, axs = plt.subplots(2, figsize=(8,6), sharex=True)
# Plot histogram and vertical lines for subplot 1
axs[0].hist(values_1, bins=default_bins, color='blue', alpha=0.7)
_, bin_edges1 = np.histogram(values_1, bins=len(text_bins), range=(lower_range, values_1.max()) if lower_range else None)
for edge in bin_edges1:
axs[0].axvline(x=edge, color='red', linestyle='--', linewidth=1)
# Plot histogram and vertical lines for subplot 2
axs[1].hist(values_2, bins=default_bins, color='green', alpha=0.7)
_, bin_edges2 = np.histogram(values_2, bins=len(text_bins), range=(lower_range, values_2.max()) if lower_range else None)
for edge in bin_edges2:
axs[1].axvline(x=edge, color='red', linestyle='--', linewidth=1)
# Add labels and title
axs[0].set_title(name_1)
axs[1].set_title(name_2)
axs[0].set_yscale('log')
axs[1].set_yscale('log')
axs[0].set_ylabel('Frequency')
axs[1].set_ylabel('Frequency')
axs[1].set_xlabel(f'{output_column_name}')
# Adjust layout
plt.tight_layout()
filename = f"{output_column_name}.png"
filepath = os.path.join(save_dir, filename)
plt.savefig(filepath)
print(f"Plots saved at '{filename}'!")