是否有可能设置matplotlib轴的最大值和最小值,但随后自动缩放当值比这些范围小很多?
例如,我想百分比变化的曲线图-100和100之间的限制,但我的很多情节会之间,也就是说,-5和5当我使用ax.set_ylim(-100, 100)
,这个图是非常不清楚。
我想我可以使用类似ax.set_ylim(max((-100, data-n)), min((100, data+n)))
,但有一个更内置的方式来实现这一目标?
作为ImportanceOfBeingErnest pointed out,有此功能的支持。最后我只是用我原来的想法,但其比例由最大和最小的值给自动缩放的印象。
ax.set_ylim(max((-100, data_min+data_min*0.1)), min((100, data_max+data_max*0.1)))
当我的情况是真实的
data_min <= 0, data_max >= 0
为什么不直接设置基于范围的数据的每一次情节更新轴限制?
ax.set_ylim(min(data), max(data))
或检查的数据的范围是低于某一阈值,然后设置轴限制。
if min(abs(data)) < thresh:
ax.set_ylim(min(data), max(data))
如果你想放弃极端值,你可以使用numpy的quantile
功能找到说的数据和最后的99.999%的第一0.001%。
near_min = np.quantile(in_data, 0.0001)
near_max = np.quantile(in_data, 0.9999)
ax.set_ylim(near_min, near_max)
您将需要根据数据你放下的卷上调整位数。您可能要包括的near_min和真实分钟之间的差异是否显著一些测试?