2014-09-28 142 views
3

我在一個圖中繪製了四個子圖,並且它們彼此共享了x軸。在子圖之間繪製分隔線

但是,這些子圖之間沒有分隔符。 我想在它們之間劃一條線。或者在這些子圖中是否可以採用分離器?

至少在子圖的軸之間應該有分隔符。我認爲應該如下圖所示。

\ ------------------------------------

subplot1 

\ - -----------------------------------

subplot2 

\ ------- -----------------------------

... 

\ ------------- -----------------------

回答

3

我找到了一個解決方案,但不是一個完美的解決方案,但爲我工作。

將下面的代碼應用到子圖的每個對象。

其中[-1,1.5]是假設覆蓋圖中X軸所有區域的值。不完全相同。

axes.plot([-1, 1.5], [0, 0], color='black', lw=1, transform=axes.transAxes, clip_on=False) 
axes.plot([-1, 1.5], [1, 1], color='black', lw=1, transform=axes.transAxes, clip_on=False) 

我嘗試另一種方式,我認爲是最完美的方式。如下面的代碼所示。

trans = blended_transform_factory(self.figure.transFigure, axes.transAxes) 
    line = Line2D([0, 1], [0, 0], color='w', transform=trans) 
    self.figure.lines.append(line) 

在上面的代碼中,行將從每個圖邊的開始處開始,並且在數字大小改變時它會改變。

+0

好的解決方案...也許你可以使用'axes.hlines()'... – 2014-09-29 14:46:33

+0

@SaulloCastro我已經嘗試了axes.hlines(),但是它不能在軸線框外畫線。 – 2014-10-06 02:14:08