РЕДАКТИРОВАТЬ: Добавлено другое решение. Оп в комментариях ..
спасибо за ваш ответ. Тем не менее, размещение plot.show () там, где вы его поместили, создает только 10 отдельных графиков, а не данные о последовательных итерациях, появляющихся на одном графике
Здесь это правильное решение для ноутбуков Jupyter.
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
import time
muarr = np.linspace(0,10,10)
print('muarray')
print(muarr)
z = np.linspace(0.0,1.0,10) # create an array
print('array z')
print(z)
def fillit(mu):
x = 10 # initial x value
for i in range(0,10): # fill n2-n1 iterations
z[i] = i * x * mu
return z # returning the array
fig = plt.figure()
ax = fig.add_subplot(111)
plt.ion()
fig.show()
fig.canvas.draw()
for i in range(0,10):
mu = muarr[i] #for a specific horizontal axis location
print()
print('iteration '+ str(i))
print('muarray '+str(i))
print('mu = '+str(mu))
y=fillit(mu) # an array of 10 elements from 0 to 100*mu
print('array y is an array of 10 elements from 0 to 100*mu')
print (y)
x=y*0.0 + mu # dummy x value is all mu
print('array x is just all mu so that each x,y pt can be plotted')
print (x)
ax.plot(x,y,'ko',markersize=1)
fig.canvas.draw()
time.sleep(1)
Если вам нужен график для каждой итерации, вы должны добавить plt.show () в конце для l oop, после plt.plot:
for i in range(0,10):
mu = muarr[i] #for a specific horizontal axis location
print()
print('iteration '+ str(i))
print('muarray '+str(i))
print('mu = '+str(mu))
y=fillit(mu) # an array of 10 elements from 0 to 100*mu
print('array y is an array of 10 elements from 0 to 100*mu')
print (y)
x=y*0.0 + mu # dummy x value is all mu
print('array x is just all mu so that each x,y pt can be plotted')
print (x)
plt.plot(x,y,'ko',markersize=1) # k=black, plot small points
plt.show()
Ответ, который вы связываете, добавляет plt.show () после l oop, поэтому он покажет только последний созданный plt.plot (). На самом деле, связанный вопрос - это то, что вам может понадобиться, потому что jupyter и Terminal работают немного по-разному.