def graphEdiff2D(ax, data1, data2, title):
    x, y, z, d = gt.calculatecompareelementdiff2D(data1, data2)

    z = gt.convert * z

    # Set up a regular grid of interpolation points
    xi, yi = np.linspace(x.min(), x.max(), 100), np.linspace(y.min(), y.max(), 100)
    xi, yi = np.meshgrid(xi, yi)

    # Interpolate
    rbf = scipy.interpolate.Rbf(x, y, z, function='linear')
    zi = rbf(xi, yi)

    im = ax.imshow(zi, vmin=z.min(), vmax=z.max(), origin='lower',
                   extent=[x.min(), x.max(), y.min(), y.max()])

    ax.set_title(title,fontsize=14)
    # plt.xlabel('Structure')
    # plt.ylabel('Structure')

    ax.scatter(x, y, c=z, vmin=z.min(), vmax=z.max())
    ax.plot([x.min(),x.max()],[y.min(),x.max()],'--',color='red',linewidth=4,alpha=0.8)

    ax.set_xlim([-0.02*x.max(),x.max()+0.02*x.max()])
    ax.set_ylim([-0.02*y.max(),y.max()+0.02*y.max()])

    ax.grid(True)

    return im
def graphEdiff2D(ax, data1, data2, title):
    x, y, z, d = gt.calculatecompareelementdiff2D(data1, data2)

    C = data1.shape[0]

    mat = np.ndarray(shape=(C, C), dtype=float)

    for i in x:
        for j in y:
            I = int(i)
            J = int(j)
            mat[I, J] = z[I + J * C]

    #get discrete colormap
    cmap = plt.get_cmap('RdBu', np.max(mat) - np.min(mat) + 1)

    # Show mat
    im = ax.matshow(mat, vmin=np.min(mat), vmax=np.max(mat))

    th = ax.set_title(title, fontsize=16)
    th.set_position([0.5, 1.005])

    cmap = plt.cm.jet
    norm = plt.Normalize(mat.min(), mat.max())
    rgba = cmap(norm(mat))
    rgba[range(C), range(C), :3] = 1, 1, 1
    ax.imshow(rgba, interpolation='nearest')

    # Plot center line
    ax.plot([x.min() - 0.5, x.max() + 0.5],
            [y.min() - 0.5, x.max() + 0.5],
            '--',
            color='red',
            linewidth=4,
            alpha=0.8)

    # Set Limits
    ax.set_xlim([-0.02 * x.max(), x.max() + 0.02 * x.max()])
    ax.set_ylim([-0.02 * y.max(), y.max() + 0.02 * y.max()])

    ax.xaxis.tick_bottom()

    return im
def graphEdiff2D(ax, data1, data2, title):
    x, y, z, d = gt.calculatecompareelementdiff2D(data1, data2)

    C = data1.shape[0]

    mat = np.ndarray(shape=(C,C),dtype=float)

    for i in x:
        for j in y:
            I = int(i)
            J = int(j)
            mat[I,J] = z[I+J*C]

    #get discrete colormap
    cmap = plt.get_cmap('RdBu', np.max(mat)-np.min(mat)+1)

    # Show mat
    im = ax.matshow(mat,vmin = np.min(mat), vmax = np.max(mat))

    th = ax.set_title(title,fontsize=16)
    th.set_position([0.5,1.005])

    cmap = plt.cm.jet
    norm = plt.Normalize(mat.min(), mat.max())
    rgba = cmap(norm(mat))
    rgba[range(C), range(C), :3] = 1, 1, 1
    ax.imshow(rgba, interpolation='nearest')

    # Plot center line
    ax.plot([x.min()-0.5,x.max()+0.5],[y.min()-0.5,x.max()+0.5],'--',color='red',linewidth=4,alpha=0.8)

    # Set Limits
    ax.set_xlim([-0.02*x.max(),x.max()+0.02*x.max()])
    ax.set_ylim([-0.02*y.max(),y.max()+0.02*y.max()])

    ax.xaxis.tick_bottom()

    return im