1

私は現在、matplotlibグラフに一連の任意の線を描画しようとしています。これが私が使用しているコードです:

import matplotlib.pyplot as pyplot

def center_origin(axis):
    '''Center the axis in the middle of the picture'''
    axis.spines['right'].set_color('none')
    axis.spines['top'].set_color('none')
    axis.xaxis.set_ticks_position('bottom')
    axis.spines['bottom'].set_position(('data',0))
    axis.yaxis.set_ticks_position('left')
    axis.spines['left'].set_position(('data',0))

def render(lines):
    figure = pyplot.figure(figsize=(4,4))
    axis = figure.add_subplot(1, 1, 1)

    center_origin(axis)        

    for (x1, y1), (x2, y2) in lines:
        axis.add_line(pyplot.Line2D((x1, x2), (y1, y2), color='red'))

    axis.set_xlim(-1.2, 1.2)
    axis.set_ylim(-1.2, 1.2)
    return figure

if __name__ == '__main__':
    render([((1, 0), (0, 1)),
            ((1, 0), (-1, 0)),
            ((1, 0), (0, -1))]).show()
    raw_input('block > ')

次のようなグラフが生成されます。

悪いグラフ

現在、x軸は、(1、0)から(-1、0)までの赤い線を覆っています。center_origin線を引く前と後の両方に関数を配置してみましたが、何も変わりませんでした。

matplotlibに軸上に線を描画させるにはどうすればよいですか?

4

1 に答える 1

5

この属性zorderは、線が互いに重なり合う順序を決定します。試してみてくださいpyplot.Line2D((x1, x2), (y1, y2), color='red', zorder = 1)。値を試してみてください。もっと高いものが必要になる場合があります。

于 2013-03-12T16:14:00.840 に答える