您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python matplotlib blit到图的轴或侧面?

python matplotlib blit到图的轴或侧面?

刚开始时,所有这一切肯定会令人困惑!

首先,如果要链接刻度线等,那么使用blitting并没有多大意义。如果只有某些内容发生更改,则发条只是避免重绘所有内容的一种方法。如果一切都在变化,则使用blitting毫无意义。只需重新绘制剧情。

基本上,您只想要fig.canvas.draw()plt.draw()

无论如何,要回答第一个问题,在大多数情况下,您无需手动更新它们。如果您更改轴限制,它们将自动更新。您遇到了问题,因为您只是在绘制轴的内部,而不是重新绘制绘图。

关于第二个问题,《Matplotlib用户指南》的“美术师教程”是一个详尽详尽的概述。

简而言之,有两个单独的层。一种用于将事物分组到绘图时您会担心的部分(例如,图形,轴,轴,线等),另一种用于处理渲染和总体绘制(画布和渲染器)。

您可以在matplotlib图中看到的是一个Artist。(例如,文本,线条,轴,甚至是图形本身。)艺术家a)知道如何绘制自己,并且b)可以包含其他艺术家。

对于艺术家自己绘制,它使用渲染器(几乎永远不会直接接触到的特定于后端的模块)来绘制figureCanvas又名“画布”(围绕基于矢量的页面或像素缓冲区的抽象)。要绘制图中的所有内容,请致电canvas.draw()

因为艺术家可以是其他艺术家的团体,所以事物之间存在层次结构。基本上是这样的(显然,这有所不同):

figure
    Axes (0-many) (An axes is basically a plot)
        Axis (usually two) (x-axis and y-axis)
            ticks
            ticklabels
            axis label
         background patch
         title, if present
         anything you've plotted, e.g. Line2D's

无论如何,希望这使事情变得更加清晰。

如果您确实确实想使用blit来更新刻度线标签等,则需要获取并还原包括它们的整个区域。获取该区域有些棘手,因为直到绘制时间 后才 完全知道它(由于对乳胶的支持,在matplotlib中渲染文本比渲染其他对象要复杂得多)。您可以做到,如果确实需要它,我会很高兴地举一个例子,但是与仅绘制所有内容相比,它通常不会产生速度优势。(例外是,如果您仅在具有很多子图的图形中更新一个子图。)

python 2022/1/1 18:30:43 有461人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶