如何交互式地更新 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()

输出


相关文章