Python 最初打印正确设置所有轴的数据时执行的matplotlib函数的名称是什么?

Python 最初打印正确设置所有轴的数据时执行的matplotlib函数的名称是什么?,python,matplotlib,Python,Matplotlib,当我在未设置任何参数的情况下使用matplotlib打印某些数据时,数据会在正确设置x轴和y轴限制的情况下打印,这意味着显示所有数据,并且不会浪费空间(情况1): 结果: 如果我给e设置一些限制。Gx轴,即使使用autoscale()也不再自动缩放y轴(情况2): 结果: 问题:matplotlib内部使用哪个函数来确定两个轴的限制,并在情况1中更新绘图? 背景:我想将此功能用作案例2重新实现/扩展此功能的基础。正如下面的答案所指出的,目前还没有这样的自动化方法。因此,如果您有兴趣了解如何重

当我在未设置任何参数的情况下使用matplotlib打印某些数据时,数据会在正确设置x轴和y轴限制的情况下打印,这意味着显示所有数据,并且不会浪费空间(情况1):

结果:

如果我给e设置一些限制。Gx轴,即使使用
autoscale()
也不再自动缩放y轴(情况2):

结果:

问题:matplotlib内部使用哪个函数来确定两个轴的限制,并在情况1中更新绘图?

背景:我想将此功能用作案例2重新实现/扩展此功能的基础。

正如下面的答案所指出的,目前还没有这样的自动化方法。因此,如果您有兴趣了解如何重新缩放y轴,一种方法是重新计算相应的y值,然后使用不可接受答案中指定的方法重新指定y限制。我没有将此标记为重复,因为您的示例中存在某些不同的问题:

  • 首先(大一),您只绘制了x值。因此,要在另一个答案中应用该方法,我必须首先获得数组中的y值。这是通过使用
    get_ydata()
  • 其次,x值从
    range()
    generator更改为NumPy数组,因为前者不支持索引
  • 第三,我必须使用一个变量,使x-极限与函数一致

import matplotlib
matplotlib.use('QT5Agg')
import matplotlib.pyplot as plt
x = range(10)

plt.plot(x,'-o',markersize='10')

plt.tight_layout()
plt.show()
import matplotlib
matplotlib.use('QT5Agg')
import matplotlib.pyplot as plt
x = range(10)

plt.plot(x,'-o',markersize='10')
plt.autoscale(enable=True,axis='y')
plt.xlim(7.5,11)
plt.tight_layout()
plt.show()
import numpy as np
import matplotlib.pyplot as plt

x = np.arange(10)

plt.plot(x,'-o',markersize='10')
x_lims = [7.5, 11]
plt.xlim(x_lims)

ax = plt.gca()
y = ax.lines[0].get_ydata()

def find_nearest(array,value):
    idx = (np.abs(array-value)).argmin()
    return idx

y_low = y[find_nearest(x, x_lims[0])]
y_high = y[find_nearest(x, x_lims[1])]
ax.set_ylim(y_low, y_high)

plt.tight_layout()
plt.show()