A box plot is drawn from just a few numbers. Work them out yourself, the same way ax.boxplot does.
Task: write box_numbers(values) that returns a dictionary with these keys:
"q1", "median", "q3": the quartiles and median, worked out the way pandas quantile does"low_whisker": the smallest value that is not below the low fence, Q1 − 1.5 × IQR"high_whisker": the largest value that is not above the high fence, Q3 + 1.5 × IQR"outliers": every value below the low fence or above the high fence, sorted from smallest to largest, repeats kept. Use [] if there are none.The whiskers stop at real values from the list, not at the fences themselves. values has at least one number.