python matplotlib:转置轴的方法

时间:2013-04-02 15:15:18

标签: matplotlib

假设我有一个绘图函数,它接受一个axis参数(或返回一个)。是否有一些低级方法用于转置整个图,使x轴成为y轴,反之亦然?或者甚至是绘图前的轴,以便绘图功能通过依赖轴功能正确地完成所有操作(标记)?

我知道如何“手动”执行此操作,但我想知道是否有一个稍微隐藏的抽象级别允许这种转换。

2 个答案:

答案 0 :(得分:7)

约翰·亨特的邮件列表old post(约2005年)。我怀疑这是一个非常罕见的欲望和狡猾的做法,因此它没有增加意义。

John Hunter在现有图上交换轴的示例是

line2d = plot(rand(10))[0]

def swap(xdata, ydata):
    line2d.set_xdata(ydata)
    line2d.set_ydata(xdata)
    draw()

swap(line2d.get_xdata(), line2d.get_ydata())

答案 1 :(得分:1)

不仅仅是对tcaswell的回答。

def swap(*line_list):
    """
    Example
    -------
    line = plot(linspace(0, 2, 10), rand(10))
    swap(line)
    """
    for lines in line_list:
        try:
            iter(lines)
        except:
            lines = [lines]

        for line in lines:
            xdata, ydata = line.get_xdata(), line.get_ydata()
            line.set_xdata(ydata)
            line.set_ydata(xdata)
            line.axes.autoscale_view()

一个例子

line = plot(linspace(0, 2, 10), rand(10))
swap(line)