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

Matplotlib自动缩放

衡玄裳
2023-03-14
问题内容

我需要使用matplotlib获取一个自动拟合数据的图。这是我得到的代码:

import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
....
lines = LineCollection(mpl.line_holder, colors=mpl.colorholder , linestyle='solid')
plt.axes().add_collection(lines)
plt.axes().set_aspect('equal', 'datalim')
plt.draw()
plt.show()

这样就创建了一个图,但是无论数据是什么,窗口都始终是相同的(0-〜.8),即使所有数据都在该窗口之外。生成的窗口无法放大,只能放大,因此这是一个主要问题。我找不到在任何地方设置任何类型的大小设置的地方,II也找不到关于默认值的详细信息。我需要一个窗口来自动拟合数据,但是我找不到能执行此操作的任何函数(由于某些原因,autoscale_on(True)不能做到)。数据是高度可变的,因此不能设置硬限制。我怎样才能使其正确显示?


问题答案:

不知道这是否是您想要的,但是如果这不是您想要的,我可以更改它。

import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection

import pylab as p

fig = plt.figure()
pts1 = []
pts2 = []
for i in range(100):
    pts1.append([i,i])
    pts2.append([-i-3,-i])
lines = LineCollection([pts1,pts2], linestyles='solid')
subplt = fig.add_subplot(111,aspect='equal')
subplt.add_collection(lines)
subplt.autoscale_view(True,True,True)
p.show()

希望能有所帮助。



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

  • 问题内容: 我正在使用matplotlib在Python中绘制数据。我正在基于一些计算更新图的数据,并希望ylim和xlim自动重新缩放。取而代之的是,比例是根据初始图的限制设置的。MWE是 第一个plot命令从中生成一个图,我可以看到一切正常。最后,y-data数组的起始位置大于,但该图的y限制仍然存在。 我知道我可以使用手动更改限制,但是我不知道将其更改为什么。在循环中,我可以告诉pyplot

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

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

  • ElasticCache中创建了一个redis实例,它将像往常一样用于存储和检索数据。 这个redis实例是否有最大内存,如何检查? 我只需要举个例子,如果redis中的数据大小超过100MB,那么它应该是自动缩放的,而无需我手动缩放它或创建新实例之类的事情。 当数据大小减少时(例如:由于流量减少,从300mb减少到50MB),那么实例就应该减少,这样就不会产生额外的成本。如何在AWS Elast

  • 如果我们提供一个基于google cloud managed instance group概念的虚拟机,如何将新的虚拟机添加到集群中。 谢谢,