Como eu digo matplotlib que eu sou feito com um enredo?
-
09-09-2019 - |
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?
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 ..