import matplotlib.animation as animation from mpl_toolkits.mplot3d import Axes3D from SOM import SOM from SOM_2 import SOM2 #load data data = np.loadtxt("data1.txt") #初期化 file = 9 D = 2 som = [] X = [] SOM = SOM() SOM.initialize(data) for t in range(50): SOM.fit(data, t) #子SOM for file_num in range(file): file_name = "data" + str(file_num + 1) + ".txt" print(file_name) X.append(np.loadtxt(file_name)) som.append(SOM()) som[file_num].initialize(X[file_num]) #V v = [] for file_num in range(file): som[file_num].fit(X[file_num], 1)
ax_observable.scatter(data[:, 0], data[:, 1]) ax_latent.scatter(lats[t][:, 0], lats[t][:, 1]) ax_observable.scatter(obss[t][:, 0], obss[t][:, 1]) plt.title("{}time".format(t)) fig = plt.figure(figsize=(12, 6)) ax_latent = fig.add_subplot(121) ax_observable = fig.add_subplot(122) lats = [] obss = [] #learn som = SOM() som.initialize(data) for t in range(60): som.fit(data, t) #lat, = ax_latent.scatter(som.z[:, 0], som.z[:, 1], s=5) #obs, = ax_observable.scatter(som.y[:, 0], som.y[:, 1]) #lats.append([lat]) #obss.append([obs]) obss.append(som.y) lats.append(som.z) #plot #ax_latent.scatter(som.zeta[:, 0], som.zeta[:, 1], s = 50, alpha = 0.5) fargs = [ax_latent, ax_observable, obss, lats] # ani = animation.FuncAnimation(fig, update, fargs=fargs, interval=100, repeat="True") ani = animation.FuncAnimation(fig, update, fargs=fargs, frames=60, interval=100)