La modification de la couleur et le marqueur de chaque point à l'aide de seaborn jointplot
J'ai ce code légèrement modifié à partir de ici :
import seaborn as sns
sns.set(style="darkgrid")
tips = sns.load_dataset("tips")
color = sns.color_palette()[5]
g = sns.jointplot("total_bill", "tip", data=tips, kind="reg", stat_func=None,
xlim=(0, 60), ylim=(0, 12), color='k', size=7)
g.set_axis_labels('total bill', 'tip', fontsize=16)
et je reçois une jolie parcelle Cependant, pour mon cas, j'ai besoin d'être en mesure de modifier la couleur ET le format de chaque point.
J'ai essayé d'utiliser les mots clés, marker
, style
, et fmt
, mais je reçois l'erreur TypeError: jointplot() got an unexpected keyword argument
.
Quelle est la bonne façon de le faire? J'aimerais éviter d'appeler sns.JointGrid
et la représentation des données et les distributions marginales manuellement..
Peut-être que je suis missunderstanding, mais selon cette réponse, vous ne pouvez pas vous passer d'une liste de marqueurs de
Tirer. Je vais devoir le modifier. Il serait peut-être possible d'effacer les points de la figure est créé et de l'intrigue de chacun d'eux individuellement
Il a fini par être pas trop dur. Tout ce que j'avais à faire était de
Pouvez vous s'il vous plaît répondre à votre propre question en montrant votre code (et il faut l'accepter)? Encore mieux si vous pouvez ajouter une image personnes, l'avenir peut être une référence 🙂
plt.scatter
et donc la seaborn
wrapper ne fonctionne pas, soit.Tirer. Je vais devoir le modifier. Il serait peut-être possible d'effacer les points de la figure est créé et de l'intrigue de chacun d'eux individuellement
Il a fini par être pas trop dur. Tout ce que j'avais à faire était de
g.ax_joint.cla()
pour effacer les axes où les points sont tracés et puis tracez les points à l'aide de la réponse que vous avez mentionné. La régression est parti, mais je n'ai pas vraiment besoin de cette partie de toute façon tout les points avec les distributions marginalesPouvez vous s'il vous plaît répondre à votre propre question en montrant votre code (et il faut l'accepter)? Encore mieux si vous pouvez ajouter une image personnes, l'avenir peut être une référence 🙂
OriginalL'auteur pbreach | 2014-11-18
Vous devez vous connecter pour publier un commentaire.
La résolution de ce problème est presque pas différent de celui de matplotlib (tracer un nuage de points avec différents marqueurs et les couleurs), sauf que je voulais garder les distributions marginales:
Qui me donne ceci:
De la ligne de régression est maintenant disparu, mais c'est tout ce dont j'avais besoin.
plt.scatter
ne dispose d'aucun moyen pour contrôler le marqueur utilisé pour différents points, donc quelque chose comme ceci est probablement votre meilleur pari, mais vous pouvez le faireg.ax_joint.collections[0].set_visible(False)
au lieu d'effacer l'ensemble des Axes, ce qui permettra de conserver la ligne de régression.Bizarrement, cela ne fonctionnait lors de la spécification de la marque. Sans cela, il ne sera pas tracé les points!
OriginalL'auteur pbreach
Accepté la réponse est trop compliqué.
plt.sca()
peut être utilisé pour ce faire d'une manière simple:plt.sca
et en utilisant les axes de l'objet directement:g.ax_joint.scatter(tips.total_bill, ...)
. Éviter lespyplot
de machine d'état lorsque cela est possible.OriginalL'auteur Max Shron
Vous pouvez aussi directement précis dans la liste d'arguments, grâce au mot-clé :
joint_kws
(testé avec seaborn 0.8.1). Si nécessaire, vous pouvez également modifier les propriétés de la marginales avecmarginal_kws
De sorte que votre code devient :
OriginalL'auteur Vincent Jeanselme
seaborn/categorical.py
, trouverdef swarmplot
.marker='o'
avant**kwargs
kwargs.update
, ajoutermarker=marker
.Puis ajouter par ex.
marker='x'
comme paramètre lors de la représentation avecsns.swarmplot()
comme vous le feriez avec Matplotlibplt.scatter()
.Vient de partout le même besoin, et d'avoir
marker
comme unkwarg
n'a pas de travail. J'ai donc eu un bref coup d'oeil. On peut définir d'autres paramètres de façon similaire.https://github.com/ccneko/seaborn/blob/master/seaborn/categorical.py
Seulement un petit changement nécessaire ici, mais voici le GitHub fourche page pour référence rapide 😉
OriginalL'auteur Claire
Une autre option est d'utiliser JointGrid, depuis jointplot est un wrapper qui simplifie son utilisation.
OriginalL'auteur Vlamir
Les deux autres réponses sont complexes extravagances (en fait, ils sont par des gens qui comprennent vraiment ce qui se passe sous le capot).
Voici une réponse de quelqu'un qui est juste deviner. Il fonctionne bien!
ValueError: Supply a 'c' kwarg or a 'color' kwarg but not both; they differ but their functionalities overlap.
aussi beau Que ce serait si lec
argument pourrait être une collection, je ne pense pas qu'il le peut.OriginalL'auteur riri