Sorry for reply you late.
I can draw figure like this

image.jpg756×578 104 KB

using code
import numpy as np 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D
import copy

def Goldstein_price(x,y):
    '''
        range: [-2, 2]
        f(0,-1)=3
    '''
    A = (1+ ((x+y+1)**2) * (19-14*x + 3*(x**2) - 14*y + 6*x*y + 3*(y**2) ))
    B = (30+ ((2*x-3*y)**2) *(18- 32*x + 12*(x**2) + 48*y -36*x*y + 27*y**2))
    return  A*B

def main():
    max_rg=2
    num = 200
    rg = np.arange(-max_rg, max_rg, float(max_rg)*2/num)
    
    result = draw(rg, Goldstein_price)

if __name__ == '__main__':
	main()