tweak 90% histogram display

- also show bar
- fix padding
This commit is contained in:
NunoSempere 2024-02-06 13:28:28 +01:00
parent d2db239a1d
commit 9917941048
15 changed files with 13 additions and 3 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -364,7 +364,7 @@ void array_print_90_ci_histogram(double* xs, int n_samples, int n_bins)
max_bin_count = bins[i]; max_bin_count = bins[i];
} }
} }
const int MAX_WIDTH = 50; // Adjust this to your terminal width const int MAX_WIDTH = 40; // Adjust this to your terminal width
double scale = max_bin_count > MAX_WIDTH ? (double)MAX_WIDTH / max_bin_count : 1.0; double scale = max_bin_count > MAX_WIDTH ? (double)MAX_WIDTH / max_bin_count : 1.0;
// Print the histogram // Print the histogram
@ -374,7 +374,12 @@ void array_print_90_ci_histogram(double* xs, int n_samples, int n_bins)
decimalPlaces = -magnitude; decimalPlaces = -magnitude;
decimalPlaces = decimalPlaces > 10 ? 10 : decimalPlaces; decimalPlaces = decimalPlaces > 10 ? 10 : decimalPlaces;
} }
printf("(-∞, %*.*f): %d\n", 4 + decimalPlaces, decimalPlaces, min_value, below_min); printf("(%*s, %*.*f): ", 6 + decimalPlaces, "-∞", 4 + decimalPlaces, decimalPlaces, min_value);
int marks_below_min = (int)(below_min * scale);
for (int j = 0; j < marks_below_min; j++) {
printf("");
}
printf(" %d\n", below_min);
for (int i = 0; i < n_bins; i++) { for (int i = 0; i < n_bins; i++) {
double bin_start = min_value + i * bin_width; double bin_start = min_value + i * bin_width;
double bin_end = bin_start + bin_width; double bin_end = bin_start + bin_width;
@ -392,7 +397,12 @@ void array_print_90_ci_histogram(double* xs, int n_samples, int n_bins)
} }
printf(" %d\n", bins[i]); printf(" %d\n", bins[i]);
} }
printf("(%*.*f, +∞): %d\n", 4 + decimalPlaces, decimalPlaces, max_value, above_max); printf("(%*.*f, %*s): ", 4 + decimalPlaces, decimalPlaces, min_value, 6 + decimalPlaces, "+∞");
int marks_above_max = (int)(above_max * scale);
for (int j = 0; j < marks_above_max; j++) {
printf("");
}
printf(" %d\n", above_max);
// Free the allocated memory for bins // Free the allocated memory for bins
free(bins); free(bins);