python matplotlib:转置轴的方法

python matplotlib:转置轴的方法,matplotlib,Matplotlib,假设我有一个plotting函数,它接受一个axes参数(或返回一个)。是否有一些低级方法来转换整个绘图,使x轴变成y轴,反之亦然?或者甚至是打印之前的轴,以便打印功能通过依赖轴功能正确地执行所有操作(标记) 我知道如何“手动”完成这项工作,但我想知道是否有一个稍微隐藏的抽象级别允许这种转换。An(大约2005年)到John Hunter的邮件列表。我怀疑这是一种非常罕见的欲望,也是一种非常狡猾的欲望,以至于它在当时还没有被加上任何意义 John Hunter在现有绘图上交换轴的示例如下: 只不

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

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

An(大约2005年)到John Hunter的邮件列表。我怀疑这是一种非常罕见的欲望,也是一种非常狡猾的欲望,以至于它在当时还没有被加上任何意义

John Hunter在现有绘图上交换轴的示例如下:


只不过是一个包裹而已

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)

你的轴上有什么类型的艺术家?好问题,我想我可以具体一点,并提到我正在考虑连接到pandas系列(和DataFrame)对象的gfx plot函数(通过DataFrame.plot()…)。如果您不熟悉panadas绘图功能,我将查看代码并尝试稍后获取更具体的信息。我担心的是,有太多的小块需要单独切换,任何解决方案都会变得非常脆弱。我认为您可能是对的。。。在实际绘图的专门级别上,这可能是最容易做到的。会有很多小事情需要调整,比如标签。我的直觉来自于看
twiny
twinx
下面是如何工作的。也许这更简单,但会让人惊讶。自动缩放对我不起作用:我必须在
line.axes.relim()之前放置
line.axes.autoscale\u view()
,请参阅。
line = plot(linspace(0, 2, 10), rand(10))
swap(line)