3
$\begingroup$

From the beginning: I have function $u(r)$ and radial symmetry in system. Also I've got results as data array ${u_i(r_i)}$. And I want to plot it as $u(x,y)$. Due to radial symmetry its gonna be like $x=r \cos(\varphi), y=r \sin(\varphi)$ In other words I have function profile and want to "integrate" it over $2\pi\,\mathrm d\varphi$. Like this for Gaussian

$\endgroup$
  • $\begingroup$ Welcome to Mathematica.SE! I suggest that: 1) You take the introductory Tour now! 2) When you see good questions and answers, vote them up by clicking the gray triangles, because the credibility of the system is based on the reputation gained by users sharing their knowledge. Also, please remember to accept the answer, if any, that solves your problem, by clicking the checkmark sign! 3) As you receive help, try to give it too, by answering questions in your area of expertise. $\endgroup$ – bbgodfrey May 19 '15 at 18:50
  • $\begingroup$ Use RevolutionPlot3D[] instead. $\endgroup$ – J. M. will be back soon May 19 '15 at 19:03
  • $\begingroup$ Have you looked at ParametricPlot3D? I believe it can be applied. $\endgroup$ – Mr.Wizard May 19 '15 at 19:04
  • $\begingroup$ All this works if I have a rule for my U(r) -> U(x,y). But I have to assign a numerical value from list of already obtained values to new rule for (x,y) to build concentric circles. Maybe I'm missing something.I'm novice in mathematica, all my knowledges based on F1 help $\endgroup$ – Dima Sakovich May 19 '15 at 19:28
5
$\begingroup$

One option would be to use RevolutionPlot3D.

u = Table[Sin[2 \[Pi]*r], {r, 0, 1, 0.1}]; (*u is a dummy u[r]*)
f = ListInterpolation[u, {0, 1}]; (*Create an interpolating function over the range {0,1}*)
(*Plot it over the domain.*)
RevolutionPlot3D[f[r], {r, #1, #2}] & @@@ f["Domain"]

enter image description here

You could also generate the points yourself and use ListPointPlot3D

u = Table[{r, Sin[2 \[Pi]*r]}, {r, 0, 1, 0.1}];(*table of {r,u[r]}*)
xyz = Flatten[Table[{#1*Cos[\[Theta]], #1*Sin[\[Theta]], #2} & @@@ u, {\[Theta],0, 2 \[Pi], 2 \[Pi]/100} ], 1];
ListPointPlot3D[
 xyz
 , Filling -> Axis
 ]

enter image description here

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.