Pour l'intrigue
sns.countplot(x="HostRamSize",data=df)
J'ai obtenu le graphique suivant avec le mélange d'étiquettes sur l'axe des abscisses, comment puis-je éviter cela? Devrais-je changer la taille du graphique pour résoudre ce problème?
Avoir une série ds
comme ceci
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(136)
l = "1234567890123"
categories = [ l[i:i+5]+" - "+l[i+1:i+6] for i in range(6)]
x = np.random.choice(categories, size=1000,
p=np.diff(np.array([0,0.7,2.8,6.5,8.5,9.3,10])/10.))
ds = pd.Series({"Column" : x})
il existe plusieurs options pour rendre les étiquettes d'axes plus lisibles.
plt.figure(figsize=(8,4)) # this creates a figure 8 inch wide, 4 inch high
sns.countplot(x="Column", data=ds)
plt.show()
ax = sns.countplot(x="Column", data=ds)
ax.set_xticklabels(ax.get_xticklabels(), rotation=40, ha="right")
plt.tight_layout()
plt.show()
ax = sns.countplot(x="Column", data=ds)
ax.set_xticklabels(ax.get_xticklabels(), fontsize=7)
plt.tight_layout()
plt.show()
Bien sûr, toute combinaison de ceux-ci fonctionnerait tout aussi bien.
La taille de la figure et la taille de la police xlabel peuvent être définies globalement en utilisant rcParams
plt.rcParams["figure.figsize"] = (8, 4)
plt.rcParams["xtick.labelsize"] = 7
Cela peut être utile de placer sur un bloc-notes juypter de telle sorte que ces paramètres s'appliquent à toute figure générée à l'intérieur. Malheureusement, la rotation des xticklabels n’est pas possible avec rcParams.
Je suppose qu’il est intéressant de noter que les mêmes stratégies s’appliqueraient naturellement aussi pour le barplot né de la mer, le complot pour le matplotlib ou les pandas.
Si vous voulez juste vous assurer que les étiquettes de xticks ne sont pas compressées, vous pouvez définir une taille de fig appropriée et essayer fig.autofmt_xdate()
.
Cette fonction alignera et fera automatiquement pivoter les étiquettes.