Is there a central difference/gradient function somewhere?

There is a function gradvecfield() in CoupledFields.jl. It’s used by Gadfly.jl to calculate the gradient vector field for Geom.vectorfield. gradvecfield() works like this:

using CoupledFields
kernelpars = GaussianKP(X)
∇g = gradvecfield([a b], X, Y, kernelpars)

where a is a smoothness parameter, b is a ridge parameter, X and Y are matrices, and Y = g(X).