SphericalPlot3D with List: Create 3D Plots from Point Data

  • Thread starter Thread starter sukharef
  • Start date Start date
  • Tags Tags
    List
AI Thread Summary
SphericalPlot3D requires input in the form of a function with specified ranges for theta and phi, which poses a challenge when using a list of points. To utilize SphericalPlot3D with point data, users should first interpolate the list to create a function. However, an error may arise if the data does not conform to the structured grid required by the Interpolation function. The discussion highlights that while ListPlot3D can handle the data structure, Interpolation may not, indicating a need for proper data formatting. Ensuring consistent plot ranges can help identify errors related to data format versus interpolation issues.
sukharef
Messages
54
Reaction score
0
Hello.
SphericalPlot3D can build 3d plot only if arguments are : function (theta,phi) and theta's and phi's ranges.
Is there an opportunity to use SphericalPlot3D or smth like that, if i have a list of points, {z,theta,phi}?
Thanks!
 
Physics news on Phys.org
Just interpolate your list to get a function, then use SphericalPlot3D as normal.
 
DaleSpam said:
Just interpolate your list to get a function, then use SphericalPlot3D as normal.

data = {
{4.27126*10^-2, 0.05, 0.05}, {4.23865*10^-2, 0.05, 0.1},
{4.18468*10^-2, 0.05, 0.15}...
};

func = Interpolation[data];

SphericalPlot3D[ func[x, y], {x, 0, Pi}, {y, 0, 2 Pi}, PlotPoints -> 100, PlotRange -> Full]

An error is "Interpolation::indim: The coordinates do not lie on a structured \
tensor product grid. >>"
 
Did you read the online help for Interpolation and Interpolation::indim? How do they say the data must be structured?
 
DaleSpam said:
Did you read the online help for Interpolation and Interpolation::indim? How do they say the data must be structured?

i did.

here is two results: 1) ListPlot3D 2) the same plot but after interpolation of list.

[PLAIN]http://i038.radikal.ru/1108/95/8863f173203b.jpg

ListPlot3D[data, PlotRange -> All]
func = Interpolation[data];
func[3.7, 1.6]; <- it works great
Plot3D[func[x, y], {x, 0, Pi/2}, {y, 0, 2 Pi}, PlotRange -> All]
 
Last edited by a moderator:
Looks like the data is structured correctly for ListPlot3D, but not for Interpolation. Note that interpolation requires a different input than ListPlot3D. Also, note that you will better able to see problems by specifying the same plot range for both. That will help you distinguish between format errors and interpolation errors. It looks like a format error to me, but due to the scale it is not possible to rule out interpolation errors also.
 
Last edited:

Similar threads

Replies
3
Views
9K
Replies
5
Views
2K
Replies
2
Views
2K
Replies
1
Views
6K
Replies
3
Views
1K
Replies
1
Views
2K
Replies
1
Views
514
Back
Top