0
$\begingroup$

I am dealing with a large dataset and I need to plot the dataset as a contour plot. The code is as follows:

q = Table[i, {i, 1, 1020}];
p = Table[i, {i, 1, 4092}];
testdata1 = Table[{i, N[Sin[i]]}, {i, 1, Length[p]}];
processeddata1 = 
  Partition[Flatten@Table[Table[Flatten@Join[{j, j*testdata1[[i]]}], {i, 
   1, Length[p]}], {j, 1, Length[q]}], 3]
ListContourPlot[processeddata1]

Whenever I try to plot the dataset, unfortunately it takes enormously long time and stuck ultimately. So, has there any way to get rid of that and to plot of my dataset smoothly? I am using Mathematica 12.0

Please help me.

$\endgroup$
3
  • $\begingroup$ ListContourPlot[RandomChoice[processeddata1, 1000] ] works but looks chaotic. $\endgroup$ Jun 3 at 16:17
  • $\begingroup$ How many contours? $\endgroup$ Jun 3 at 18:36
  • 1
    $\begingroup$ I think Mathematica is the wrong tool for such large visualizations. Better to learn ParaView and how to process large data sets interactively. $\endgroup$
    – Roman
    Jun 4 at 10:33

2 Answers 2

1
$\begingroup$

When I try to plot only 1 single contour line with a reduced data set (you have over 4 millions points) I get:

ListContourPlot[processeddata1[[1 ;; 4173840 ;; 50]], Contours -> 1]

enter image description here

A black triangle? As this is only 1 contour line, this line must wiggle to and fro to fill the whole triangle. A Plot3D may help solve the mystery:

enter image description here

This looks at first rather innocent, but if we look at it from the right side:

enter image description here

we see that the surface is highly corrugated. This together with over 4 million data points makes it a tremendous job to draw several contour lines. Anyway, contour lines are not of much help if they fill the whole picture.

$\endgroup$
0
$\begingroup$

Do you really need all points plotted? In principle you are parametrizing a 2D manifold $$ \{x,y,z\} = \{j, i j, j \sin i\} $$ over the ranges $i\in[1,4092]$ and $j\in[1,1020]$. We can plot it directly with

ParametricPlot3D[{j, i j, j Sin[i]}, {i, 1, 4092}, {j, 1, 1020},
  BoxRatios -> {1, 1, 1}, PlotPoints -> 100, AxesLabel -> {x, y, z}]

enter image description here

Playing with the options of this ParametricPlot3D may give you exactly what you need without going through the list construction of processeddata1.

$\endgroup$

Your Answer

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

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