import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d, Axes3D
from scipy.interpolate import griddata
a = [[613, 42023, 20], [762, 32557, 20], [323, 63163,20], [643, 60877, 20],
[422, 32740, 20], [394,48891, 20], [744, 105341,20], [334, 58036,20],
[303,27343,20], [861,33608,20]]
df = pd.DataFrame(a, columns=['a', 'b', 'kseq']) # create dataframe not neccessary
X = df.a
Y = df.b
Z = df.kseq
fig = plt.figure(figsize=plt.figaspect(0.5))
ax = fig.gca(projection='3d')
xi = np.linspace(X.min(), X.max(), 100)
yi = np.linspace(Y.min(), Y.max(), 100)
zi = griddata((X, Y), Z, (xi[None, :], yi[:, None]), method='linear') # create a uniform spaced grid
xig, yig = np.meshgrid(xi, yi) # create pair of x, y
surf = ax.plot_surface(xig, yig, zi, rstride=5, cstride=3, linewidth=0, cmap=plt.cm.coolwarm, antialiased=False) # 3d plot
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()