Python 基于鼠标单击事件的动画颜色网格
我希望创建一个颜色网格,它接受一些原始用户输入,例如:定义的脚本运行时间、随机信号、样本以及标准化0或1。按下鼠标时,其中一列或框应变为红色,表示高,而其他框/栏应保持蓝色、黄色或绿色 到目前为止,我有以下代码,但除了能够显示示例颜色网格之外,我没有取得任何进展。我可以采取什么步骤来执行原始输入并生成随机信号Python 基于鼠标单击事件的动画颜色网格,python,numpy,matplotlib,colors,signal-processing,Python,Numpy,Matplotlib,Colors,Signal Processing,我希望创建一个颜色网格,它接受一些原始用户输入,例如:定义的脚本运行时间、随机信号、样本以及标准化0或1。按下鼠标时,其中一列或框应变为红色,表示高,而其他框/栏应保持蓝色、黄色或绿色 到目前为止,我有以下代码,但除了能够显示示例颜色网格之外,我没有取得任何进展。我可以采取什么步骤来执行原始输入并生成随机信号 from pylab import arange, cm, draw, rand from matplotlib import pylab as plt from time import
from pylab import arange, cm, draw, rand
from matplotlib import pylab as plt
from time import sleep
import time
start_time = time.time()
plt.ion()
a = arange(25)
a = a.reshape(5,5)
fig = plt.figure(figsize = (5, 5))
for i in range(100):
ax = fig.add_subplot(111)
b = 5*rand(5,5)
cax = ax.matshow(a-b, cmap=cm.jet, vmin = -10, vmax = 25)
if i == 0:
fig.colorbar(cax)
draw()
sleep(0.01)
plt.show()
print("--- %s seconds ---" %(time.time() - start_time))
用于设置回调函数,例如每当用户单击鼠标时调用update:
import numpy as np
from matplotlib import pyplot as plt
import matplotlib.colors as mcolors
import time
start_time = time.time()
def generate_data():
a = np.arange(25).reshape(5, 5)
b = 10 * np.random.rand(5, 5)
result = a - b
n = result.size
np.put(result, np.random.randint(n), 25)
return result
def update(event):
data = generate_data()
mat.set_data(data)
fig.canvas.draw()
return mat
fig, ax = plt.subplots()
mat = ax.matshow(generate_data(), cmap=plt.get_cmap('jet'))
plt.colorbar(mat)
fig.canvas.mpl_connect('button_press_event', update)
plt.show()
print("--- %s seconds ---" %(time.time() - start_time))