如何交互式地更新 matplotlib 的 imshow() 窗口?
matplotlibserver side programmingprogramming
要绘制 matplotlib 的 imshow 窗口的交互式图像,我们可以采取以下步骤 −
使用 subplots() 方法创建一个图形和一组子图。
使用 numpy 创建一个数组来绘制图像。
使用 imshow() 方法显示图像。
要创建滑块轴,请创建一个轴区和一个滑块,并将 facecolor 设置为黄色。
要在更改滑块的同时更新图像,我们可以编写一个用户定义的方法,即 update()。使用 draw_idle() 方法,在控件返回到 GUI 事件循环后请求小部件重绘。
要显示图形,请使用 show() 方法。
示例
import numpy as np from matplotlib import pyplot as plt from matplotlib.widgets import Slider plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True fig, ax = plt.subplots() image = np.random.rand(3, 3) img = ax.imshow(image) axcolor = 'yellow' ax_slider = plt.axes([0.20, 0.01, 0.65, 0.03], facecolor=axcolor) slider = Slider(ax_slider, 'Slide->', 0.1, 30.0, valinit=2) def update(val): ax.imshow(np.random.rand(3, 3)) fig.canvas.draw_idle() slider.on_changed(update) plt.show()