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 Jan 16 '17 at 20:56
  • $\begingroup$ @rcollyer What is the best way to add it to the post? $\endgroup$ – user3658307 Jan 16 '17 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 Jan 16 '17 at 21:00
  • $\begingroup$ @rcollyer I've added it via pastebin; thanks for the suggestion $\endgroup$ – user3658307 Jan 16 '17 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. Jan 16 '17 at 21:31
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, privacy policy and cookie policy

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