Python matplotlib,组合两个单独的轴,然后打印数据

Python matplotlib,组合两个单独的轴,然后打印数据,python,matplotlib,graph,plot,Python,Matplotlib,Graph,Plot,我想创建单个轴,然后选择其中的两个轴来绘制数据。例如: x_axis = XAxis(fig, position=(0.2, 0.1), length=0.7) y_axis = YAxis(fig, position=(0.1, 0.2), length=0.7) plot_within_axes(fig, x_axis, y_axis, np.random.random_sample(5)) 这是我的实现,当然,我对它不满意: import random import numpy as

我想创建单个轴,然后选择其中的两个轴来绘制数据。例如:

x_axis = XAxis(fig, position=(0.2, 0.1), length=0.7)
y_axis = YAxis(fig, position=(0.1, 0.2), length=0.7)
plot_within_axes(fig, x_axis, y_axis, np.random.random_sample(5))

这是我的实现,当然,我对它不满意:

import random
import numpy as np
import matplotlib.pyplot as plt

class XAxis:
    def __init__(self, figure, position, length):
        self.position = position
        self.length = length
        axes = figure.add_axes([position[0], position[1], length, 0.1])
        axes.spines['top'].set_visible(False)
        axes.spines['left'].set_visible(False)
        axes.spines['right'].set_visible(False)
        axes.xaxis.set_ticks_position('bottom')
        axes.set_yticks([])
        axes.patch.set_alpha(0)
        self.axes = axes

class YAxis:
    def __init__(self, figure, position, length): 
        self.position = position
        self.length = length
        axes = fig.add_axes([position[0], position[1], 0.1, length])
        axes.spines['top'].set_visible(False)
        axes.spines['bottom'].set_visible(False)
        axes.spines['right'].set_visible(False)
        axes.yaxis.set_ticks_position('left')
        axes.set_xticks([])
        axes.patch.set_alpha(0)
        self.axes = axes

def plot_within_axes(figure, x_axis, y_axis, values):
    axes = fig.add_axes([x_axis.position[0], y_axis.position[1], x_axis.length, y_axis.length])
    x_limits = x_axis.axes.get_xlim()
    axes.plot(np.linspace(x_limits[0], x_limits[1], len(values), endpoint=True), values)
    axes.set_ylim(y_axis.axes.get_ylim())
    axes.set_xticks([])
    axes.set_yticks([])
    axes.patch.set_alpha(0)

fig = plt.figure()
x_axis = XAxis(fig, position=(0.2, 0.1), length=0.7)
y_axis = YAxis(fig, position=(0.1, 0.2), length=0.7)
plot_within_axes(fig, x_axis, y_axis, np.random.random_sample(5))
fig.patch.set_facecolor('white')

plt.show()
(我用两个绘图区域画了两个轴,我隐藏了不需要的刺、不需要的记号、不需要的背景,我用第三个绘图区域画了我的数据,这是一个非常难看的把戏)

我不知道是否可以使用matplotlib处理单个轴。对我来说,轴是一条直线,但对matplotlib来说,画一个个体轴是没有意义的

是否可以使用matplotlib低级原语执行此操作

我的最终目标是创建一个应用程序来处理轴,在任何(x,y)位置绘制它们,而不使用任何难看的技巧,当然,在这些轴内绘制图形