当前位置: 首页 > 面试题库 >

在Matplotlib中自动重新缩放ylim和xlim

贺高飞
2023-03-14
问题内容

我正在使用matplotlib在Python中绘制数据。我正在基于一些计算更新图的数据,并希望ylim和xlim自动重新缩放。取而代之的是,比例是根据初始图的限制设置的。MWE是

import random
import matplotlib.pyplot as pyplot

pyplot.ion()

x = range(10)
y = lambda m: [m*random.random() for i in range(10)]

pLine, = pyplot.plot(x, y(1))

for i in range(10):
    pLine.set_ydata(y(i+1))
    pyplot.draw()

第一个plot命令从中生成一个图[0,1],我可以看到一切正常。最后,y-data数组的起始位置[0,10)大于1,但该图的y限制仍然存在[0,1]

我知道我可以使用手动更改限制pyplot.ylim(...),但是我不知道将其更改为什么。在for循环中,我可以告诉pyplot像第一次绘制图形一样缩放限制吗?


问题答案:

您将需要更新轴的dataLim,然后基于dataLim更新轴的viewLim。合适的方法是axes.relim()ax.autoscale_view()方法。您的示例如下所示:

import random
import matplotlib.pyplot as pyplot

pyplot.ion()

x = range(10)
y = lambda m: [m*random.random() for i in range(10)]

pLine, = pyplot.plot(x, y(1))

for i in range(10):
    pLine.set_ydata(y(i+1))

ax = pyplot.gca()

# recompute the ax.dataLim
ax.relim()
# update ax.viewLim using the new dataLim
ax.autoscale_view()
pyplot.draw()


 类似资料:
  • 问题内容: 您肯定知道一种快速方法,在放大后如何追踪图形的极限?我想精确地知道坐标,以便可以使用和复制图形。我正在使用标准的qt4agg后端。 编辑:我知道我可以使用光标找出上下角处的两个位置,但是也许有正式的方法可以做到这一点? 问题答案: matplotlib有一个事件处理API,您可以使用它来挂接您所指代的操作。“事件处理”页面提供了事件API的概述,并且在“轴”页面上(非常)简短地提到了x

  • 问题内容: 我需要使用matplotlib获取一个自动拟合数据的图。这是我得到的代码: 这样就创建了一个图,但是无论数据是什么,窗口都始终是相同的(0-〜.8),即使所有数据都在该窗口之外。生成的窗口无法放大,只能放大,因此这是一个主要问题。我找不到在任何地方设置任何类型的大小设置的地方,II也找不到关于默认值的详细信息。我需要一个窗口来自动拟合数据,但是我找不到能执行此操作的任何函数(由于某些原

  • 问题内容: 我只想绘制数组的一部分,固定x部分,但让y部分自动缩放。我尝试如下所示,但它不起作用。 有什么建议? 问题答案: 自动缩放总是使用整个数据范围,因此y轴将按y数据的全部范围缩放,而不仅仅是x范围内的缩放。 如果要显示数据的子集,那么仅绘制该子集可能是最简单的:

  • 问题内容: 我使用matplotib的Axes API绘制了一些数字。我画的线之一代表理论上的预期线。它没有原始y和x限制的含义。我想要的是让matlplotlib在自动缩放限制时忽略它。我以前要做的是检查当前极限,然后绘制并重置极限。问题在于,当我绘制第三张图时,将与理论线一起重新计算极限值,这实际上扩展了图。 问题答案: 显而易见的方法是手动将限制设置为所需的值。(例如) 如果您不想手动查找限

  • 问题内容: 在matplotlib中,制作一系列具有相同X和Y比例尺的子图的最佳方法是什么,但这些方法是根据具有最极端数据的子图的最小/最大范围来计算的?例如,如果您要绘制一系列直方图: 每个直方图将在X和Y轴上具有不同的范围/刻度。我希望这些设置都相同,并根据绘制的直方图的最极端直方图限制进行设置。一种笨拙的方法是记录每个图的X / Y轴的最小值/最大值,然后在绘制每个子图后遍历每个子图,并在绘

  • 我正在尝试在我的kubernetes集群中设置自动缩放。在部署heapster及其服务之后。我正面临以下错误。 Heapster成功地从pod中提取度量,可在 自动缩放(HPA)中的建议无法获取CPU消耗:无法将对象解封为[]V1ALPHA1类型的Go值。PodMetrics未解决此问题