# RegionPlot, RegionPlot3D and differing embedding dimensions

RegionPlot seems to be for plotting regions with an embedding dimensions of 2 only, and RegionPlot3D for regions with an embedding dimensions of 3.

Yet passing a region of the wrong embedding dimension to them might do a number of different thing (which is never an error message complaining about the dimension).

Often they just give an nnregion error:

reg1 = ImplicitRegion[x^4 + y^4 + z^4 < 1, {x, y, z}]; (* note 3D region *)

RegionPlot[reg1] (* used with 2D plotting function *)

During evaluation of RegionPlot::nnregion: ImplicitRegion[x^4+y^4+z^4<1,{x,y,z}] cannot be automatically discretized. >>

During evaluation of RegionPlot::invplotreg: {ImplicitRegion[x^4+y^4+z^4<1,{x,y,z}]} is not a valid region to plot. >>

(* RegionPlot[reg1] *)


(Of course RegionPlot3D[reg1] works.)

But look:

RegionPlot[Ball[]] (* my understanding was that Ball[] is a 3D region equivalent to Ball[{0,0,0}] *)


Even though:

RegionEmbeddingDimension@Ball[]
(* 3 *)


RegionPlot[Ball[{0, 0, 0}] does the same thing.

This works as expected:

RegionPlot[Ball[{0, 0}]]


(Although weirdly the BoundaryStyle option of RegionPlot is not respected, perhaps a bug?)

RegionPlot3D will also issue an nnregion message usually, but not always:

RegionPlot3D@InfiniteLine[{{0, 0}, {1, 1}}]


Once again the embedding dimension didn't match, but the function just produced an empty plot instead.

Question:

• Are these all bugs or do some of the results (e.g. RegionPlot[Ball[]]) make sense?

• Why don't the functions just check the RegionEmbeddingDimensions and let the user know what's wrong? Is there any technical limitation to this (such as excessive computation time in edge cases)?

• Yes, I think there is room for improvement here, and I've seen similar bug reports from @rcollyer a while ago. It's not utterly unreasonable to give up on plotting with a message (even if not the best one) when the available methods fail. For 3D graphics primitives, it looks like RegionPlot will try to plot the part in the $xy-$plane, e.g. RegionPlot[Simplex[3]] (except the boundary curve isn't shown...), and for Ball[] I would have expected the cross-section to have a filled interior... Perhaps some day RegionPlot and RegionPlot3D will get officially documented for region input. Jul 19 '15 at 15:33
• @ilian I never realized that RegionPlot wasn't documented for region input. Many of the region types are illustrated through RegionPlot in the documentation. Jul 19 '15 at 15:54
• Right, I meant on ref/RegionPlot and not through ad hoc use. Jul 19 '15 at 15:59