Plotting spherical surfaces
Just format your list such that SphericalPlot3D[]
can handle it:
pts = Flatten[Table[{Theta, Phi, Cos[Theta]}, {Theta, 0, Pi, Pi/14}, {Phi, 0, 2 Pi, 2 Pi/14}], 1];
f = Interpolation[pts];
SphericalPlot3D[f[Theta, Phi], {Theta, 0, Pi}, {Phi, 0, 2 Pi}, ColorFunction -> "Rainbow",
Mesh -> None]
From the example using ListPlot3D
, I assume that your data points can be described by a height function above the plane. In other words, they describe a convex shape with reflection symmetry at the z=0 plane.
Then the only thing you may have to modify is the lighting and the ratio of the axes for your 3D plot, to get a smoother appearance with uniform color as is stated in the question:
pts = Flatten[
Table[{Sin[θ] Cos[ϕ], Sin[θ] Sin[ϕ],
Cos[θ]}, {θ, 0, Pi, Pi/14}, {ϕ, 0,
2 Pi, 2 Pi/14}], 1];
ListPlot3D[{pts, -pts}, BoundaryStyle -> None,
ColorFunction -> (Orange &), InterpolationOrder -> 2,
BoxRatios -> Automatic,
Lighting -> {{"Directional", White, {3, 0, 0}}, {"Ambient",
LightGray}}]
I put the directional light source in a position that illuminates both halves of the sphere equally, so that the equatorial "crease" doesn't show up (no matter how you rotate the output).