web-dev-qa-db-fra.com

Comment étiqueter et modifier l'échelle des axes de Seaborn kdeplot

Voici mon code

import numpy as np
from numpy.random import randn
import pandas as pd
from scipy import stats
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns


fig = sns.kdeplot(treze, shade=True, color=c1,cut =0, clip=(0,2000))
fig = sns.kdeplot(cjjardim, shade=True, color=c2,cut =0, clip=(0,2000))

fig.figure.suptitle("Plot", fontsize = 24)

plt.xlabel('Purchase amount', fontsize=18)
plt.ylabel('Distribution', fontsize=16)

, ce qui donne le graphique suivant:

enter image description here

Je veux faire deux choses:

1) Modifiez l'échelle de l'axe des y en multipliant ses valeurs par 10000 et, si c'est possible, ajoutez un signe% aux nombres. En d'autres termes, je veux que les valeurs de l'axe y affichées dans le graphique ci-dessus soient 0%, 5%, 10%, 15%, 20%, 25% et 30%.

2) Ajoutez plus de valeurs à l'axe des x. Je suis particulièrement intéressé à afficher les données à des intervalles de 200. En d'autres termes, je veux que les valeurs de l'axe des x affichées dans le graphique soient 0, 200, 400, 600, ... et ainsi de suite.

11
iatowks

1) ce que vous recherchez est très probablement une combinaison de get_yticks () et set_yticks:

plt.yticks(fig.get_yticks(), fig.get_yticks() * 100)
plt.ylabel('Distribution [%]', fontsize=16)

Remarque: comme mwaskom commente fois 10000 et un signe% est mathématiquement incorrect.

2) vous pouvez spécifier où vous voulez vos ticks via la fonction xticks. Ensuite, vous avez plus de ticks et les données sont plus faciles à lire. Vous n'obtenez pas plus de données de cette façon.

plt.xticks([0, 200, 400, 600])
plt.xlabel('Purchase amount', fontsize=18)

Remarque: si vous vouliez limiter la vue à vos valeurs x spécifiées, vous pourriez même avoir un aperçu de plt.xlim () et réduire le chiffre à la plage intéressante.

20
cattt84