Python 如何在x轴上设置刻度动画?
我有一个Python 如何在x轴上设置刻度动画?,python,matplotlib,Python,Matplotlib,我有一个matplotlibaxes实例,在该实例中,我正在通过blit设置AxesImage的动画 我想做的是在x轴上设置蜱虫的动画。 我经常更新AxeImage(以及随后绘制的AxeImage)上的数据,每次更新时,我都想移动一个额外的勾号,以突出显示某些内容的位置。 这就是我现在正在做的: axis = axes.get_xaxis im.set_data(new_data) axis.set_ticks([10,20,30,x,t]) axis.set_ticklabels(["p",
matplotlib
axes
实例,在该实例中,我正在通过blit
设置AxesImage
的动画
我想做的是在x轴上设置蜱虫的动画。
我经常更新AxeImage(以及随后绘制的AxeImage)上的数据,每次更新时,我都想移动一个额外的勾号,以突出显示某些内容的位置。
这就是我现在正在做的:
axis = axes.get_xaxis
im.set_data(new_data)
axis.set_ticks([10,20,30,x,t])
axis.set_ticklabels(["p", "u", "z", "z", "i"])
axes.draw_artist(im)
axes.draw_artist(axis)
虽然我看到刻度正确更新,但标签没有更新。我认为轴bbox不包括轴,这可能吗?如果是,我如何设置动画?我应该从其他地方复制和恢复吗?轴bbox不包括轴“内部”之外的任何内容(例如,它不包括勾号标签、标题等) 解决这个问题的一个快速方法是,当你进行闪电扫描时,只需抓取图形的整个区域。(例如,
background=canvas.copy\u from\u bbox(图bbox)
)
如果您有多个子情节,并且只想为其中一个子情节设置动画,则可能会导致问题。在这种情况下,您可以按照background=canvas.copy_from_bbox(ax.bbox.expanded(1.1,1.2))
的思路执行操作。不过,你必须猜测你需要的比率
如果您需要刻度标签的确切范围,那么它会有点棘手。最简单的方法是遍历ticklab对象,并获得与ax.bbox
的联合。您可以将其设置为一行:ax.bbox.union([label.get\u window\u extent()用于ax.get\u xticklabels()]中的标签)
无论如何,我认为这三个选项中的一个应该满足您的需要。答案非常透彻!我认为第一个选项就足够了(我正在同步设置所有子地块的动画),但它们都可能变得有用!