En la terminología tradicional de los gráficos de caja, se utilizan "vallas" para determinar los valores atípicos, pero no se trazan. Llamamos cuartil inferior $Q_1,$ el cuartil superior $Q_3,$ y el rango intercuartílico $IQR = Q_3 - Q_1.$ Entonces la valla inferior está en $Q_1 - 1.5(IQR)$ y la valla superior está en $Q_3 + 1.5(IQR).$
Los puntos situados por debajo de la valla inferior o por encima de la valla superior son valores atípicos. El bigote inferior va desde $Q_1$ hasta el valor más bajo dentro del valla inferior. Si no hay ningún valor atípico inferior, se baja hasta el mínimo. El bigote superior va desde $Q_3$ hasta el valor más alto dentro de valla superior. Si no hay ningún valor atípico superior, se sube hasta el máximo. Los valores atípicos, si los hay, se trazan como puntos individuales más allá de los extremos de los bigotes.
Nunca había oído hablar de los "volantes". Quizá esa terminología sea exclusiva de Python. He mirado el código de Python (con el que no estoy muy familiarizado) y no pude distinguir allí entre 'outlier' y 'flier'.
Algunos datos normales muestran valores atípicos. Casi todos" los datos normales se encuentran dentro de $\mu \pm 3\sigma,$ pero las colas de la distribución van a $\pm \infty,$ datos normales puede tienen valores extremos. (Obtuve algunos valores atípicos moderados en mi tercer intento).
A continuación se muestra una muestra de tamaño 100 generada a partir de $\mathsf{Norm}(100, 15),$ redondeados a enteros y ordenados. Utilicé código R para mostrar 'boxplot statistics', que incluye toda la información necesaria para dibujar un diagrama de caja (incluidos los lados "con muescas", que no se utilizan aquí). También superpongo líneas rojas punteadas para mostrar las ubicaciones de las vallas. Quizá puedas utilizar los mismos datos o datos similares en Python o leer un manual de Python para ver qué se entiende por 'volantes'.
x = sort(round(rnorm(100, 100, 15))); x; boxplot.stats(x)
[1] 53 60 65 66 72 72 76 78 81 81 81 82 82 82 84 85 86 87 87 89
[21] 89 90 90 90 90 90 91 91 91 92 92 92 92 93 93 93 93 95 95 96
[41] 96 96 96 96 97 97 98 99 99 100 100 101 101 101 101 101 102 102 103 103
[61] 103 104 104 104 105 105 106 106 106 106 106 107 108 109 109 109 110 110 111 112
[81] 112 115 115 118 119 120 120 120 121 122 123 124 124 125 125 127 128 132 132 139
$stats
[1] 65 90 100 109 132 # 65 and 132 are ends of whiskers
$n
[1] 100
$conf # 'notch' parameter would make CI, not used here
[1] 96.998 103.002
$out
[1] 53 60 139
quantile(x)
0% 25% 50% 75% 100%
53 90 100 109 139
lowr.fence = 90 - 1.5*IQR(x); lowr.fence
[1] 61.5
upr.fence = 109 + 1.5*IQR(x); upr.fence
[1] 137.5
boxplot(x, pch=19, col="skyblue2") # 'pch=19' for solid dots
abline(h = c(lowr.fence, upr.fence), col="red", lwd=2, lty="dashed")