Boas Rodrigo, tudo bem? Espero que sim!
Inicialmente peço desculpas pela demora em responder.
Considerando as ferramentas que o curso mostrou até agora, vou tentar me ater a elas na resposta.
Antes de tudo, temos que importar as bibliotecas que vamos usar
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
Agora, vamos gerar alguns números aleatórios para trabalhar com essa distribuição
# Gerando 1000 números aleatórios com uma seed fixa
np.random.seed(seed=3)
numeros = np.random.normal(1,100,1000)
Nesse caso, se quiser ter o mesmo gráfico que eu obtive, é importante usar a mesma seed.
A partir dessa distribuição podemos gerar o gráfico de frequências com os números gerados:
# gerando o gráfico de frequencias com os números gerados
ax = sns.distplot(numeros, kde=True)
plt.rcParams["figure.figsize"] = [12, 6.]
gráfico de distribuição de frequências simples
Vou mostrar duas formas de adicionar as linhas que marcam o limite inferior de especificação (LSL) e o limite superior de especificação (ULS).
A primeira é definindo arbitrariamente valores e a segunda é a partir de uma estatística relacionada com a distribuição. Vamos ao código:
# inserindo as linhas verticais arbitráriamente
plt.axvline(x=-200, color='red', ls='--', label='LSL', ymin = 0, ymax = 0.85 )
plt.axvline(x=200, color='green', ls='--', label='USL', ymin = 0, ymax = 0.85 )
# Habilitar a legenda (baseada nas labels) e mostrar o gráfico
ax.legend()
plt.show()
gráfico de distribuição de frequências com linhas verticais inseridas arbitrariamente
A função responsável por inserir as linhas é a plt.axvline(). Ela possui diversos parâmetros, dos quais destaco:
- x - qual ponto do eixo x a linha será inserida;
- ymin e ymax - definem o início e fim da linha no eixo y;
- color - define a cor da linha
- label - define a legenda da linha
- ls - tipo da linha
Para mais informações, visitar a documentação, que infelizmente só está disponível em inglês.
A segunda forma é a definindo as linhas a partir de alguma função, no exemplo abaixo usarei os quartis.
# gerando o gráfico de frequencias com os números gerados
ax = sns.distplot(numeros, kde=True)
# inserindo as a partir dos quartis
q1 = np.percentile(numeros, 25)
q3 = np.percentile(numeros, 75)
plt.axvline(q1, color='red', ls='--', label='LSL', ymin = 0, ymax = 0.95 )
plt.axvline(q3, color='green', ls='--', label='USL', ymin = 0, ymax = 0.95 )
ax.legend()
plt.show()
gráfico de distribuição de frequências com linhas verticais inseridas a partir de uma função, no caso os primeiro e terceiro quartis.
Espero ter ajudado e bons estudos!