Pergunta

Os seguintes parcelas de código para dois arquivos PostScript (.ps), mas o segundo contém ambas as linhas.

import matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab

plt.subplot(111)
x = [1,10]
y = [30, 1000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("first.ps")


plt.subplot(111)
x = [10,100]
y = [10, 10000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("second.ps")

Como posso saber matplotlib de começar de novo para a segunda trama?

Foi útil?

Solução

Você pode usar figure para criar um novo enredo, por exemplo, ou o uso close após a primeira trama.

Outras dicas

Há uma ordem clara figura, e deve fazê-lo para você:

plt.clf()

Se você tem várias subtramas na mesma figura

plt.cla()

limpa os eixos correntes.

Como dito de David Cournapeau, uso figura ().

import matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab

plt.figure()
x = [1,10]
y = [30, 1000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("first.ps")


plt.figure()
x = [10,100]
y = [10, 10000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("second.ps")

Ou subtrama (121) / subtrama (122) para a mesma trama, a posição diferente.

import matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab

plt.subplot(121)
x = [1,10]
y = [30, 1000]
plt.loglog(x, y, basex=10, basey=10, ls="-")

plt.subplot(122)
x = [10,100]
y = [10, 10000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("second.ps")

Basta digitar plt.hold(False) antes do primeiro plt.plot, e você pode manter o seu código original.

Se você estiver usando Matplotlib de forma interativa, por exemplo, em uma aplicação web, (por exemplo ipython) você talvez procurando

plt.show()

em vez de plt.close() ou plt.clf().

Se nenhum deles está funcionando, então verificar isso .. dizer se você tem x e matrizes y de dados ao longo do respectivo eixo. Em seguida, verifique em qual célula (jupyter) de ter inicializado x e y para esvaziar. Isto é porque, talvez você está anexando dados para x e y, sem re-inicialização-los. Então trama tem dados antigos também. Portanto, verifique se ..

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top