Python 如何过度打印不同形状的阵列?

Python 如何过度打印不同形状的阵列?,python,matplotlib,Python,Matplotlib,我试图用不同的形状过度绘制两个阵列,但我无法将一个阵列投影到另一个阵列的顶部。例如: #importing the relevant packages import numpy as np import matplotlib.pyplot as plt def overplot(data1,data2): ''' This function should make a contour plot of data2 over the data1 plot. '''

我试图用不同的形状过度绘制两个阵列,但我无法将一个阵列投影到另一个阵列的顶部。例如:

#importing the relevant packages
import numpy as np
import matplotlib.pyplot as plt


def overplot(data1,data2):
    '''
    This function should make a contour plot
    of data2 over the data1 plot.
    '''

    #creating the figure
    fig = plt.figure()

    #adding an axe
    ax = fig.add_axes([1,1,1,1])

    #making the plot for the
    #first dataset
    ax.imshow(data1)

    #overplotting the contours
    #for the second dataset
    ax.contour(data2, projection = data2,
               levels = [0.5,0.7])

    #showing the figure
    plt.show(fig)

    return


if __name__ == '__main__':
    '''
    testing zone
    '''

    #creating two mock datasets
    data1 = np.random.rand(3,3)
    data2 = np.random.rand(9,9)

    #using the overplot
    overplot(data1,data2)
目前,我的输出类似于:

而我真正想要的是将第二个数据集的轮廓投影到第一个数据集中。这样,如果我得到的是同一个物体的图像,但相机的分辨率不同,我就可以画出这样的图。我该怎么做


感谢您的时间和关注。

通常最好将数据匹配,然后进行绘图。这样你就可以完全控制事情的完成方式

在您给出的简单示例中,可以使用沿每个轴重复来扩展3x3数据以匹配9x9数据。也就是说,您可以使用data1b=np.repeatnp.repeatdata1,3,axis=1,3,axis=0来给出:


但是对于更有趣的图像,就像你在问题末尾提到的,那么轴可能不是整数倍,而样条曲线或其他类型的插值会更好地为你服务。这种差异就是一个例子,说明了为什么最好自己控制它,因为有很多方法可以实现这种映射。

如果我理解正确,是的。在本例中,没有要绘制的对象,但在实际数据上,两幅图像都将显示太阳,因此它们需要在相同的维度上对齐。我的缺点是,标准化在这里没有帮助,因为主要问题是不同的维度。目前在我的脑海中没有直接的答案。在这种情况下,我正在工作,他们实际上是。那么你建议我使用你提到的哪种方法呢?如果它们是整数倍,那么在处理器中重复更容易编码,速度更快。至少这是一个好的开始。无论是重复还是样条曲线,你都是用许多像素来表示一个数据点,所以不管你做什么,你都要给数据的视图着色,所以无论你想要尖锐还是平滑的边界,这都是一个品味的问题,也许是科学的问题。