在matplotlib

时间:2016-07-12 17:26:55

标签: matplotlib

是否可以在matplotlib中独立于绘图距离指定yaxis行长度?

我目前使用类似的东西来生成数字

# -- We plot the data
figSpectrum   = plt.figure(figsize=(4,2))
axSpectrum    = figSpectrum.add_subplot(111)
plt.subplots_adjust(hspace=0.5)

input_spec,   = plt.plot(x, yTheo, color='#ee923b', lw=2, label='Input spectrum')
samples_spec, = plt.plot(x, ySamples, 'o', ms=1, color='k', label='Samples')

axSpectrum.set_ylim((0.0,1.0))

其中yTheoySamples位于集合[0,1]中。当我使用axSpectrum.set_ylim((0.0,1.0))时,线条图会被剪裁,如下图所示(剪裁区域显示在红色矩形中)。 The top portion of the lineplot gets clipped.

但是,如果我使用axSpectrum.set_ylim((0,1.1)),那么y轴超过1.0刻度,我觉得这很烦人(见下文)。有没有办法告诉matplotlib在从y=0y=1.1绘制yaxis时从y=0y=1绘制线图?

The yaxis extends too far above the last tick at y=1.0

1 个答案:

答案 0 :(得分:2)

clip_on=False设为plt.plot的选项。这将允许plot绘制的线超出轴区域。

来自docs

  

set_clip_on(b)

     

设置艺术家是否使用剪辑。

     

False艺术家在轴外可见时会导致意外结果

为您的例子:

input_spec,   = plt.plot(x, yTheo, color='#ee923b', lw=2, label='Input spectrum', clip_on=False)
samples_spec, = plt.plot(x, ySamples, 'o', ms=1, color='k', label='Samples', clip_on=False)