Je fais un nuage de points dans matplotlib et je dois changer l'arrière-plan du tracé réel en noir. Je sais comment changer la couleur du visage de l'intrigue en utilisant:
fig = plt.figure()
fig.patch.set_facecolor('xkcd:mint green')
Mon problème est que cela change la couleur de l'espace autour de l'intrigue. Comment changer la couleur d'arrière-plan réelle de l'intrigue?
python
matplotlib
user1764386
la source
la source
ax.patch.set_facecolor('black')
(oùax
est l'occurrence des axes).fig.patch
est le fond de la figure etax.patch
le fond des axes.Réponses:
Utilisez la
set_facecolor(color)
méthode de l'axes
objet que vous avez créée de l'une des manières suivantes:Vous avez créé une figure et des axes ensemble
Vous avez créé une figure, puis les axes plus tard
Vous avez utilisé l'API avec état (si vous faites plus que quelques lignes, et surtout si vous avez plusieurs tracés, les méthodes orientées objet ci-dessus vous facilitent la vie car vous pouvez vous référer à des figures spécifiques, tracer sur certains axes et personnaliser Soit)
Ensuite, vous pouvez utiliser
set_facecolor
:Pour vous rappeler quelles couleurs peuvent être:
la source
MethodNotFound
Une méthode consiste à définir manuellement la valeur par défaut pour la couleur d'arrière-plan de l'axe dans votre script (voir Personnalisation de matplotlib ):
Cela contraste avec la méthode de Nick T qui modifie la couleur d'arrière-plan d'un
axes
objet spécifique . La réinitialisation des valeurs par défaut est utile si vous créez plusieurs tracés différents avec des styles similaires et que vous ne souhaitez pas continuer à modifier différentsaxes
objets.Remarque: l'équivalent pour
de votre question est:
la source
Quelque chose comme ça? Utilisez le
axisbg
mot - clé poursubplot
:(Certes, pas un nuage de points et pas un fond noir.)
la source
plt.subplot('111', axisbg='black')
avant les commandes de traçage sous Windows.axis_bg
axis_bgcolor
ont été dépréciés dans matplotlib 2.0.0 et supprimés dans matplotlib 2.2.0Si vous avez déjà un
axes
objet, tout comme dans la réponse de Nick T , vous pouvez également utiliserla source
Une suggestion dans d'autres réponses est d'utiliser
ax.set_axis_bgcolor("red")
. Cependant, cela est obsolète et ne fonctionne pas sur MatPlotLib> = v2.0.Il y a aussi la suggestion d'utiliser
ax.patch.set_facecolor("red")
(fonctionne à la fois sur MatPlotLib v1.5 et v2.2). Bien que cela fonctionne bien, une solution encore plus simple pour v2.0 + consiste à utiliserax.set_facecolor("red")
la source
ax.set_axis_bgcolor("black")
fonctionne sur Python v2.7.14 / MPL v1.5.1, maisax.set_facecolor()
ne fonctionne pas. Quelque part entre MPL v1.5.1 et v2.2.0, la fonction appropriée a été commutée.ax.patch.set_facecolor("red")
. L'écrou de matplotlib 2.0 de la manière recommandée estax.set_facecolor
.La chose la plus simple est probablement de fournir la couleur lorsque vous créez l'intrigue:
ou
la source
réponse plus simple:
la source