Вы можете использовать виджет Slider , а затем установить параметр valstep
, чтобы контролировать количество шагов, на которые ползунок меняет каждый раз, когда вы щелкаете по нему.
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
fig, ax = plt.subplots()
plt.subplots_adjust(bottom=0.25)
a =[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
b =[10,11,10,12,13,11,15,12,20,9,11,12,10,18,21]
plt.bar(a, b)
bar_number = 5
ax.set_xlim(0.5, bar_number+0.5)
# plt.axes(rect, projection=None, polar=False, **kwargs)
# rect is a 4-tuple of floats = [left, bottom, width, height]
# A new axes is added with dimensions rect in normalized (0, 1) units using add_axes on the current figure.
# (left, bottom) specify lower left corner coordinates of the new axes in normalized (0, 1) units
axcolor = 'lightgoldenrodyellow'
axpos = plt.axes([0.2, 0.1, 0.65, 0.03], facecolor=axcolor)
# Slider(ax, label, valmin, valmax)
spos = Slider(axpos, 'Pos', 0, max(a)-bar_number, valinit=0., valstep=bar_number)
def update(val):
pos = spos.val
ax.set_xlim(pos+0.5, pos+0.5+bar_number)
fig.canvas.draw_idle()
spos.on_changed(update)
plt.show()
введите описание изображения здесь