You can (1) use `ListDensityPlot` with options `InterpolationOrder -> 1` and `MeshFunctions` to create mesh lines, and (2) use the function `smoothCP` from [this answer](https://mathematica.stackexchange.com/a/172395/125) to smooth the mesh lines: ClearAll[smoothCP] smoothCP = Module[{pr = PlotRange @ #, nF = Nearest[Join @@ Cases[Normal @ #, Line[a_] :> Transpose[#2 /@ Transpose@a], ∞]]}, # /. GraphicsComplex[a_, b__] :> GraphicsComplex[ If[Or @@ MemberQ @@@ Thread @ {pr, #}, #, First @ nF @ #] & /@ a, b] ] &; ldp1 = ListDensityPlot[data, InterpolationOrder -> 0, PlotRange -> All, AspectRatio -> 4/5, ImageSize -> 300]; ldp2 = ListDensityPlot[data, InterpolationOrder -> 1, PlotRange -> All, AspectRatio -> 4/5, ImageSize -> 300, PlotStyle -> None, MeshFunctions -> {Round@#3 &}, Mesh -> 2, MeshStyle -> Directive[Thick, Red]]; Row[{Show[ldp1, ldp2], Show[ldp1, smoothCP[ldp2, GaussianFilter[#, {5, 5}] &], PlotRange -> All]}] [![enter image description here][1]][1] [1]: https://i.sstatic.net/rejbL.png