Pas de contours dans des bacs de Matplotlib histogrammes ou Seaborn distplots
Tout en faisant un peu de pratique des problèmes à l'aide seaborn et un Jupyter ordinateur portable, j'ai réalisé que la distplot() graphiques n'ont pas les sombres contours de la personne bacs que tous les exemples de graphes dans la documentation. J'ai essayé de créer des graphiques à l'aide de Pycharm et remarqué la même chose. Pensant que c'était une seaborn problème, j'ai essayé quelques hist() graphiques à l'aide de matplotlib, seulement pour obtenir les mêmes résultats.
import matplotlib.pyplot as plt
import seaborn as sns
titanic = sns.load_dataset('titanic')
plt.hist(titanic['fare'], bins=30)
donné le graphique suivant:
Enfin je suis tombé sur le " edgecolor paramètre sur le plt.hist() de la fonction, et la valeur de noir fait le tour. Malheureusement, je n'ai pas trouvé de similaire paramètre à utiliser sur le seaborn distplot() de la fonction, donc je suis toujours incapable d'obtenir un graphique qui ressemble comme il se doit.
J'ai regardé dans la modification de la rcParams dans matplotlib, mais je n'ai aucune expérience avec le script suivant, j'ai couru semblait ne rien faire:
import matplotlib as mpl
mpl.rcParams['lines.linewidth'] = 1
mpl.rcParams['lines.color'] = 'black'
mpl.rcParams['patch.linewidth'] = 1
mpl.rcParams['patch.edgecolor'] = 'black'
mpl.rcParams['axes.linewidth'] = 1
mpl.rcParams['axes.edgecolor'] = 'black'
J'était juste une sorte de deviner la valeur que je devais changer, mais l'exécution de mes graphiques de nouveau montré aucun changement.
J'ai ensuite tenté de revenir aux paramètres par défaut à l'aide de mpl.rcdefaults()
mais encore une fois, pas de changement.
J'ai réinstallé matplotlib à l'aide de conda mais encore les graphiques de la même manière. Je suis à court d'idées sur la façon de modifier la valeur par défaut couleur de l'arête pour ces cartes. Je suis en cours d'exécution les dernières versions de Python, matplotlib, et seaborn à l'aide de la Conda construire.
OriginalL'auteur Colin Lindley | 2017-03-28
Vous devez vous connecter pour publier un commentaire.
Dans le cadre de la mise à jour de matplotlib 2.0 les bords de la barre de parcelles sont désactivée par défaut. Toutefois, vous pouvez utiliser le rcParam
à son tour les bords à l'échelle mondiale.
Probablement l'option la plus simple consiste à définir spécifiquement le edgecolor lors de la création d'un seaborn de la parcelle, à l'aide de la
hist_kws
argument,Pour matplotlib parcelles, vous pouvez utiliser directement le
edgecolor
ouec
argument.Également, pour les pandas parcelles,
Complète seaborn exemple:
Merci pour la réponse, je n'avais pas utilisé la hist_kws argument avant. Vous avez dit qu'il n'y est probablement pas un paramètre global pour le bord couleur/largeur de ligne en seaborn, mais est-il un pour matplotlib de l'hist() la fonction? Je suis en supposant que seaborn prend beaucoup de les paramètres par défaut de l'hist() pour créer son distplot(), afin de modifier les paramètres de matplotlib voudrais changer mon seaborn graphiques. Je suis juste confus sur la façon dont les poubelles dans mon tableau n'intègre pas nativement les contours, lorsque toutes les autres tableau que j'ai vu en ligne a eux sans avoir à se donnent explicitement un argument.
Dans matplotlib version 2
hist
n'a pas de bords, tandis que dans la version ci-dessous 2 est a eux activée par défaut (qui peut être la raison pour voir beaucoup d'exemples avec les bords). Seaborn aussi les a désactivés par défaut. Mais, en réalité, j'étais mal, il y a un paramètre global appelé"patch.force_edgecolor"
qui permettra de définir les bords pour tous les patchs, aussi les barres dans barplots. J'ai mis à jour la réponse.Exactement ce dont j'avais besoin, merci!
Même Colin, upvoted!
OriginalL'auteur ImportanceOfBeingErnest