2
$\begingroup$

I am trying to plot a sort of 3D anisotropic convection-diffusion equation. I want to use ListSliceContourPlot3D to show the solution u[t,x,y,z] at various time points. It kind of works, but it has this blue noise (away from the orange shells), which should not be there.

Ugly plot

My code is just:

ListSliceContourPlot3D[xyzw1, "CenterPlanes", DataRange -> {{-4, 4}, {-4, 4}, {-2, 2}}]

I thought rounding or thresholding might help, but it does not. I'd be grateful for any suggestions.

The data can be accessed here.

$\endgroup$
7
  • 1
    $\begingroup$ To be of help, we will need access to your data. $\endgroup$
    – rcollyer
    Commented Jan 16, 2017 at 20:56
  • $\begingroup$ @rcollyer What is the best way to add it to the post? $\endgroup$ Commented Jan 16, 2017 at 20:57
  • $\begingroup$ If it is small (not terribly likely), you can compress it and post it here. But, more viable solutions are to put it up on pastebin or dropbox. $\endgroup$
    – rcollyer
    Commented Jan 16, 2017 at 21:00
  • $\begingroup$ @rcollyer I've added it via pastebin; thanks for the suggestion $\endgroup$ Commented Jan 16, 2017 at 21:05
  • $\begingroup$ The problem is the 0 contour. Try specifying the contour levels automatically: ListSliceContourPlot3D[xyzw1, "CenterPlanes", DataRange -> {{-4, 4}, {-4, 4}, {-2, 2}}, Contours -> Range[0.05, 0.8, .05]] $\endgroup$
    – Jason B.
    Commented Jan 16, 2017 at 21:31

1 Answer 1

2
$\begingroup$

The issue is that some of your data has a very small negative value

data = << "http://pastebin.com/raw/SaWhxvm0";
MinMax@N@(Last /@ data)
(* {-0.00056, 0.80093} *)

So the places where it crosses zero are drawn as a contour. If it were a 2D plot, the ToolTip would have shown the contour value. Whether this is noise or not, I can't say, but you can omit that contour by manually specifying the contours yourself. As rcollyer points out, the DataRange option is for when you have an array of values and need to specify the x,y, and z values. But since you are giving those values in your data, this option is unnecessary here (if you want to restrict the plotted range you would use the PlotRange option).

ListSliceContourPlot3D[data, "CenterPlanes", 
 Contours -> Range[0.05, 0.8, .05]]

enter image description here

$\endgroup$

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.