Estoy haciendo un diagrama de dispersión en matplotlib y necesito cambiar el fondo del diagrama real a negro. Sé cómo cambiar el color de la cara de la trama usando:
fig = plt.figure()
fig.patch.set_facecolor('xkcd:mint green')
Mi problema es que esto cambia el color del espacio alrededor de la trama. ¿Cómo cambio el color de fondo real de la trama?
python
matplotlib
usuario1764386
fuente
fuente
ax.patch.set_facecolor('black')
(¿dóndeax
está la instancia de ejes?).fig.patch
es el fondo de la figura yax.patch
es el fondo de los ejes.Respuestas:
Use el
set_facecolor(color)
método delaxes
objeto , que ha creado de una de las siguientes maneras:Creaste una figura y ejes / es juntos
Creaste una figura, luego eje / es después
Usó la API con estado (si está haciendo algo más que unas pocas líneas, y especialmente si tiene varias parcelas, los métodos orientados a objetos anteriores facilitan la vida porque puede referirse a figuras específicas, trazar en ciertos ejes y personalizar ya sea)
Entonces puedes usar
set_facecolor
:Como recordatorio de qué colores pueden ser:
fuente
MethodNotFound
Un método es establecer manualmente el valor predeterminado para el color de fondo del eje dentro de su script (consulte Personalizar matplotlib ):
Esto contrasta con el método de Nick T que cambia el color de fondo de un
axes
objeto específico . Restablecer los valores predeterminados es útil si está haciendo múltiples trazados diferentes con estilos similares y no desea seguir cambiando diferentesaxes
objetos.Nota: el equivalente para
de tu pregunta es:
fuente
¿Algo como esto? Use la
axisbg
palabra clave parasubplot
:(De acuerdo, no es un diagrama de dispersión, y no un fondo negro).
fuente
plt.subplot('111', axisbg='black')
antes de los comandos de trazado, usando Windows.axis_bg
axis_bgcolor
dejaron de usar en matplotlib 2.0.0 y se eliminaron en matplotlib 2.2.0Si ya tiene un
axes
objeto, al igual que en la respuesta de Nick T , también puede usarfuente
Una sugerencia en otras respuestas es usar
ax.set_axis_bgcolor("red")
. Sin embargo, esto está en desuso y no funciona en MatPlotLib> = v2.0.También existe la sugerencia de usar
ax.patch.set_facecolor("red")
(funciona tanto en MatPlotLib v1.5 como en v2.2). Si bien esto funciona bien, una solución aún más fácil para v2.0 + es usarax.set_facecolor("red")
fuente
ax.set_axis_bgcolor("black")
funciona en Python v2.7.14 / MPL v1.5.1, peroax.set_facecolor()
no lo hace. En algún lugar entre MPL v1.5.1 y v2.2.0, se cambió la función adecuada.ax.patch.set_facecolor("red")
. Tuerca de matplotlib 2.0 en la forma recomendada esax.set_facecolor
.Probablemente, lo más fácil es proporcionar el color cuando crea la trama:
o
fuente
respuesta más simple:
fuente