En utilisant les exemples de seaborn.pydata.org et du manuel Python DataScience , je suis en mesure de produire un tracé de distribution combinée avec l'extrait suivant:
Code:
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# some settings
sns.set_style("darkgrid")
# Create some data
data = np.random.multivariate_normal([0, 0], [[5, 2], [2, 2]], size=2000)
data = pd.DataFrame(data, columns=['x', 'y'])
# Combined distributionplot
sns.distplot(data['x'])
sns.distplot(data['y'])
Comment puis-je combiner cette configuration avec des lignes verticales afin de pouvoir illustrer les seuils comme ceci:
Je sais que je peux le faire avec matplotlib, comme ici - Sous-graphes dynamiques d'histogramme avec ligne pour marquer la cible , mais j'aime beaucoup la simplicité des graphes créés par les marins et je voudrais savoir s'il est possible de le faire plus élégamment (Et oui, je sais que Seaborn se construit sur matplotlib).
Merci pour vos suggestions!
Juste utiliser
plt.axvline(2.8, 0,0.17)
Et la même chose pour l'autre ligne
Ici, au lieu de 0,17, vous pouvez mettre les maxima de votre distribution en utilisant une variable telle que maxx = max(data)
ou quelque chose de similaire. 2,8 est la position sur l'axe des x. Oh, rappelez-vous que la valeur y doit être comprise entre 0 et 1, où 1 est le sommet de l'intrigue. Vous pouvez redimensionner vos valeurs en conséquence. Une autre option évidente est simplement
plt.plot([2.8, 2.8], [0, max(data)])