Necesitamos tu apoyo para extender nuestras crónicas acerca de las ciencias de la computación.
Solución:
Puedes usar plot
o vlines
para dibujar una línea vertical, sino para dibujar una línea vertical desde la parte inferior hasta la parte superior del eje y, axvline
es probablemente la función más simple de usar. Aquí hay un ejemplo:
In [80]: import numpy as np
In [81]: import matplotlib.pyplot as plt
In [82]: np.random.seed(6789)
In [83]: x = np.random.gamma(4, 0.5, 1000)
In [84]: result = plt.hist(x, bins=20, color='c', edgecolor='k', alpha=0.65)
In [85]: plt.axvline(x.mean(), color='k', linestyle='dashed', linewidth=1)
Out[85]:
Resultado:
Este es un tema antiguo y una adición menor, pero una cosa que a menudo me ha gustado es trazar también el valor medio al lado de la línea:
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(6789)
x = np.random.gamma(4, 0.5, 1000)
result = plt.hist(x, bins=20, color='c', edgecolor='k', alpha=0.65)
plt.axvline(x.mean(), color='k', linestyle='dashed', linewidth=1)
min_ylim, max_ylim = plt.ylim()
plt.text(x.mean()*1.1, max_ylim*0.9, 'Mean: :.2f'.format(x.mean()))
Lo que produce el siguiente resultado:
Vería el valor más grande en su conjunto de datos (es decir, los valores del intervalo de histograma) multiplicaría ese valor por un número mayor que 1 (digamos 1.5) y lo usaría para definir el valor del eje y. De esta forma, aparecerá encima de su histograma independientemente de los valores dentro del histograma.