假设我有一些数据集想要一起绘制。然后我想要在某个部分进行缩放(例如使用ax.set_xlim、plt.xlim或plt.axis)。当我这样做时,它仍然保留缩放之前计算出的范围。我如何使其重新调整为当前显示的内容?
例如,使用:
我尝试使用
有没有更好的方法来强制重新计算y轴范围?
例如,使用:
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
data_x = [d for d in range(100)]
data_y = [2*d for d in range(100)]
data_y2 = [(d-50)*(d-50) for d in range(100)]
fig = plt.figure(constrained_layout=True)
gs = gridspec.GridSpec(2, 1, figure=fig)
ax1 = fig.add_subplot(gs[0, 0])
ax1.grid()
ax1.set_xlabel('x')
ax1.set_ylabel('y')
ax1.scatter(data_x, data_y, s=0.5)
ax1.scatter(data_x, data_y2, s=0.5)
ax2 = fig.add_subplot(gs[1, 0])
ax2.grid()
ax2.set_xlabel('x')
ax2.set_ylabel('y')
ax2.scatter(data_x, data_y, s=0.5)
ax2.scatter(data_x, data_y2, s=0.5)
ax2.set_xlim(35,45)
fig.savefig('scaling.png', dpi=300)
plt.close(fig)
生成哪个
如您所见,下面的图表由于y轴保持与非限制版本相同的范围而难以看到某些东西。我尝试使用
relim
、autoscale
或autoscale_view
,但都没有成功。对于单个数据集,我可以使用ylim
来设置该数据集的最小值和最大值。但对于不同的数据集,我必须查看所有数据集。有没有更好的方法来强制重新计算y轴范围?