私はこのアニメーションの各点で異なる色を取得しようとしています。私は各点のhsv-tupleの色相値として配列c_stateを渡したいと思います。これまで私が試みたものはすべて失敗しました。私はアニメーション関数でこれを使用しようとしました:しかし、length-1配列だけがスカラーに変換できることを警告しています。 また、np.randomを使って長さ3の配列を作成しようとしましたが、それらをrgb-tuplesに変換しようとしましたが、どちらもうまくいきませんでした。 ax.plotの色変数に渡す正しいデータ構造を見つけるのが難しいです。 色は一度設定するだけで済み、アニメーション中に変更する必要はありません。matplotlibアニメーションの配列と異なる色の点
import matplotlib.pyplot as plt
import matplotlib.animation as anim
import numpy as np
import colorsys
from random import random
n = 250
class ParticleBox:
def __init__(self,i_state,c_state):
self.i_state = np.asarray(i_state, dtype=float)
self.c_state = np.asarray(c_state, dtype=float)
self.state = self.i_state.copy()
self.color = self.c_state.copy()
i_state = -5 + 10 * np.random.random((n, 2))
c_state = np.random.random((n, 1))
pbox = ParticleBox(i_state, c_state)
fig = plt.figure()
ax = fig.add_subplot(111, xlim=(-10,10), ylim=(-10,10))
particles, = ax.plot([], [], 'o', ms=5)
def init():
global pbox
particles.set_data([],[])
return particles,
def animate(i):
global pbox, ax, fig
particles.set_data(pbox.state[:,0],pbox.state[:,1])
return particles,
ani = anim.FuncAnimation(fig, animate, frames = 500,
interval = 10, blit=True,
init_func=init)
plt.show()
を*は、それはこれまでのところ、失敗した方法*:次のように
完全なコードが見えるでしょうか? – SiHa
質問を編集しました。 – Ebo