There is a ContourPlot3Din Cartesian coordinates, and afik none in dealing with implicit functions in spherical coordinates.


If provided the spherical plot could define a surface of coaxal cones/surface intersections $\phi =$const; surface/ layered sphere intersection lines $ r=$ const; surface/ several radial pie cuts $ \theta= $ const...

which are visible on the surface under discussion analogously to ContourPlot3D , plotted directly with chosen intervals in $(r, \theta, \phi).$

That is,

just as intersection marks are left outside on any surface plotted for Cartesian coordinates $(x=const, y= const, z=const)$ in ContourPlot3D,

so also intersection marks should be left on any surface plotted for Spherical coordinates $(\phi=const, \theta= const,r=const)$.

Imagined implicit intersections somewhat like,

ContourPlot3DSph[ (r + Sin[phi - theta]) (r* theta+2)==0, {phi,.5,3}, {theta,0,3}, {r,1,2}]

I understand there is no such plot function available now..

There may be separate code or Cartesian related short cuts. Thanks for all indications.

  • $\begingroup$ Well... this isn't quite a ContourPlot. In a ContourPlot you specify a scalar function and the number of contours you desire, and the contours are displayed. There is no specification of the form f[.,.,.] == 0, and most certainly never wrapped in brackets. If you have a specific function, perhaps we can help. $\endgroup$ Commented Aug 13, 2021 at 22:27
  • $\begingroup$ Scalar here also, analogously. The intersection is with several cone nappes of different $\phi$ values, $r=$ const cylinder intersections , pie segments $\theta = 0, \pi/6$ by radial cuts and so on. The Cartesian ContourPlot3D level contours are defined by intersecting planes of infinite radii of curvature by $(x,y,z)-$ spacing /intervals chosen by default for level lines. $\endgroup$
    – Narasimham
    Commented Aug 13, 2021 at 22:50
  • $\begingroup$ r= const is the spherical intersections instead of cylinder intersections since it is the spherical coordinate,not the cylinder coordinate. $\endgroup$
    – cvgmt
    Commented Aug 15, 2021 at 8:54
  • $\begingroup$ Yes thanks for pointing out, that was my error hope obvious, so re-edited the full post. $\endgroup$
    – Narasimham
    Commented Aug 16, 2021 at 21:37

2 Answers 2


There is a ContourPlot3Din Cartesian coordinates, and afik none in dealing with implicit functions in spherical coordinates.

From the documentation page:

 1 + Sin[5 \[Phi]] Sin[10 \[Theta]]/10, {\[Theta], 0, Pi}, {\[Phi], 0,
   2 Pi}]

enter image description here

-------------------------------------------------- EDIT 16Aug2021

There is no SphericalContourPlot3D. I am not sure whether you want contours in spherical coordinates too, or in Cartesian coordinates, but take a look at the following page and the Application section as well. I searched through the names of all functions for 'contour'.


enter image description here

A prior related post is here.

  • Here we change some condition to illustrate the full situation.
eqn = TransformedField[
   "Spherical" -> 
    "Cartesian", (r*θ - 2) (r + Sin[ϕ - θ]) == 
    0 , {r, θ, ϕ} -> {x, y, z}];
contrains = 
  TransformedField["Spherical" -> "Cartesian", 
   0 < r < 2 && 0 < θ < 3 && 
    0.5 < ϕ < 3 , {r, θ, ϕ} -> {x, y, z}];
 eqn // Evaluate, {x, y, z} ∈ 
  ImplicitRegion[contrains, {x, y, z}], RegionBoundaryStyle -> None, 
 PlotPoints -> 20, MaxRecursion -> 2]

enter image description here

  • Another way which is not so effective.
trans[r_, θ_, ϕ_] = 
   "Spherical" -> "Cartesian", {r, θ, ϕ}];
reg = ParametricRegion[{trans[
     r, θ, ϕ], (r*θ - 2) (r + 
        Sin[ϕ - θ]) == 0 }, {{r, 0, 2}, {θ, 0, 
     3}, {ϕ, 0.5, 3}}];
dreg = DiscretizeRegion[reg, MaxCellMeasure -> .0001];
RegionPlot3D[dreg, Mesh -> All]

enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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