[英]Set limits on individual axis objects (XAxis or YAxis)
我有一个图,其中一些设置在 x 轴和 y 轴之间共享。 出于这个原因,我计划将此设置移至单独的功能。 通常各个轴的属性可以通过专用方法设置,例如AxesSubplot
对象的AxesSubplot
set_[xy]ticks, set_[xy]lim, ...
另一方面, [XY]Axis
对象也存在相应的方法,例如ax.xaxis.set_ticks
- 好吧,除了set_lim
; 这种方法不存在,我找不到等效的方法。 是否有原因它不存在于单个轴对象上,但有没有办法设置这些限制?
这是一些示例代码,说明了问题:
import matplotlib.pyplot as plt
def setup(axis, positions, labels):
axis.grid()
axis.set_ticks([positions[x] for x in labels])
axis.set_ticklabels(labels)
# axis.set_lim([min(positions.values()), # 'set_lim' does not exist though
# max(positions.values())])
positions = dict(zip('abcdef', range(6)))
fig = plt.figure()
ax = fig.add_subplot()
setup(ax.xaxis, positions, list('ace'))
setup(ax.yaxis, positions, list('bdf'))
ax.set_xlim([0, 5]) # need to set the limits here
ax.set_ylim([0, 5])
plt.show()
axes.Axes.set_xlim
的代码axes.Axes.set_xlim
有 60 行,检查了很多与轴比例、单位、共享和自动缩放行为等相关的内容。特别是对于自动缩放,两个轴并不是完全独立的。 因此,这驻留在axes.Axes
而不是axis.Axis
。
然而这不是问题。 每个Axis
都知道其父Axes
通过.axes
属性。 即ax.set_xlim(..)
与
ax.xaxis.axes.set_xlim(..)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.