Estou criando um gráfico de dispersão no matplotlib e preciso alterar o plano de fundo do gráfico real para preto. Eu sei como alterar a cor da face do gráfico usando:
fig = plt.figure()
fig.patch.set_facecolor('xkcd:mint green')
Meu problema é que isso muda a cor do espaço ao redor da trama. Como alterar a cor real do plano de fundo da plotagem?
python
matplotlib
user1764386
fonte
fonte
ax.patch.set_facecolor('black')
(ondeax
está a instância dos eixos).fig.patch
é o fundo da figura eax.patch
é o fundo dos eixos.Respostas:
Use o
set_facecolor(color)
método doaxes
objeto , que você criou de uma das seguintes maneiras:Você criou uma figura e um eixo / es juntos
Você criou uma figura e depois eixo / es mais tarde
Você usou a API stateful (se estiver fazendo algo além de algumas linhas, e especialmente se tiver várias plotagens, os métodos orientados a objetos acima tornam a vida mais fácil, pois você pode consultar figuras específicas, plotar em determinados eixos e personalizar ou)
Então você pode usar
set_facecolor
:Como uma atualização de quais cores podem ser:
fonte
MethodNotFound
Um método é definir manualmente o padrão para a cor de plano de fundo do eixo em seu script (consulte Personalizando o matplotlib ):
Isso contrasta com o método de Nick T, que altera a cor de fundo de um
axes
objeto específico . A redefinição dos padrões é útil se você estiver criando vários gráficos diferentes com estilos semelhantes e não quiser continuar alterandoaxes
objetos diferentes .Nota: O equivalente a
da sua pergunta é:
fonte
Algo assim? Use a
axisbg
palavra-chave parasubplot
:(Concedido, não um gráfico de dispersão e nem um fundo preto.)
fonte
plt.subplot('111', axisbg='black')
antes dos comandos de plotagem, usando o Windows.axis_bg
axis_bgcolor
foram preterido no matplotlib 2.0.0 e removido em matplotlib 2.2.0Se você já possui um
axes
objeto, como na resposta de Nick T , também pode usarfonte
Uma sugestão em outras respostas é usar
ax.set_axis_bgcolor("red")
. No entanto, isso foi preterido e não funciona em MatPlotLib> = v2.0.Há também a sugestão de usar
ax.patch.set_facecolor("red")
(funciona no MatPlotLib v1.5 e v2.2). Enquanto isso funciona bem, uma solução ainda mais fácil para a v2.0 + é usarax.set_facecolor("red")
fonte
ax.set_axis_bgcolor("black")
funciona em Python v2.7.14 / MPL v1.5.1, masax.set_facecolor()
não. Em algum lugar entre MPL v1.5.1 e v2.2.0, a função apropriada foi alterada.ax.patch.set_facecolor("red")
. Porca de matplotlib 2.0 da maneira recomendada éax.set_facecolor
.O mais fácil é provavelmente fornecer a cor quando você criar o gráfico:
ou
fonte
resposta mais simples:
fonte