1
$\begingroup$

I have a list data just like following:

data={{0., 0., 0., 3., 3., 3., 3., 3., 3., 3., 3., 3., 0., 0., 0., 0., 0., 
0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 1., 1., 1., 1., 
1.}, {0., 0., 0., 3., 3., 3., 3., 3., 3., 3., 3., 3., 0., 0., 0., 
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 1., 1., 1., 
1., 1.}, {0., 0., 0., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 0., 
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 1., 1., 
1., 1., 1.}, {0., 0., 0., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 1., 
1., 1., 1., 1.}, {0., 0., 0., 3., 3., 3., 3., 3., 3., 3., 3., 3., 
3., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 
1., 1., 1., 1., 1.}, {0., 0., 0., 3., 3., 3., 3., 3., 3., 3., 3., 
3., 3., 3., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 
1., 1., 1., 1., 1., 1.}, {0., 0., 0., 0., 3., 3., 3., 3., 3., 3., 
3., 3., 3., 3., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 
1., 1., 1., 1., 1., 1., 1.}, {0., 0., 0., 0., 3., 3., 3., 3., 3., 
3., 3., 3., 3., 3., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 
0., 1., 1., 1., 1., 1., 1., 1.}, {0., 0., 0., 0., 3., 3., 3., 3., 
3., 3., 3., 3., 3., 3., 3., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 
0., 0., 1., 1., 1., 1., 1., 1., 1.}, {0., 0., 0., 0., 3., 3., 3., 
3., 3., 3., 3., 3., 3., 3., 3., 0., 0., 0., 0., 0., 0., 0., 0., 0., 
0., 0., 0., 0., 1., 1., 1., 1., 1., 1.}, {0., 0., 0., 0., 3., 3., 
3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 0., 0., 0., 0., 0., 0., 0., 
0., 0., 0., 0., 0., 1., 1., 1., 1., 1., 1.}, {0., 0., 0., 0., 3., 
3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 0., 0., 0., 0., 0., 0., 
0., 0., 0., 0., 0., 0., 1., 1., 1., 1., 1., 1.}, {0., 0., 0., 0., 
3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 0., 0., 0., 0., 0., 
0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 1., 1., 1.}, {0., 0., 0., 
0., 0., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 0., 0., 0., 
0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 1., 1., 1.}, {0., 0., 
0., 0., 0., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 0., 0., 
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 1., 1.}, {0., 
0., 0., 0., 0., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 1., 
1.}, {0., 0., 0., 0., 0., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 
3., 3., 3., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 
1., 1.}, {0., 0., 0., 0., 0., 3., 3., 3., 3., 3., 3., 3., 3., 3., 
3., 3., 3., 3., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 
1., 1., 1.}, {0., 0., 0., 0., 0., 0., 3., 3., 3., 3., 3., 3., 3., 
3., 3., 3., 3., 3., 3., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 
1., 1., 1., 1.}, {0., 0., 0., 0., 0., 0., 3., 3., 3., 3., 3., 3., 
3., 3., 3., 3., 3., 3., 3., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 
0., 1., 1., 1., 1.}, {0., 0., 0., 0., 0., 0., 3., 3., 3., 3., 3., 
3., 3., 3., 3., 3., 3., 3., 3., 3., 0., 0., 0., 0., 0., 0., 0., 0., 
0., 0., 1., 1., 1., 1.}, {0., 0., 0., 0., 0., 0., 3., 3., 3., 3., 
3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 0., 0., 0., 0., 0., 0., 0., 
0., 0., 0., 1., 1., 1., 1.}, {0., 0., 0., 0., 0., 0., 3., 3., 3., 
3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 0., 0., 0., 0., 0., 
0., 0., 0., 0., 0., 1., 1., 1.}};

Different number stand for different color, I use ListPlot3D plot a 3-d graphic, just like 3-d plot

Simple codes:

ListPlot3D[data, ColorFunction -> "SouthwestColors", Mesh -> None, ViewPoint -> Above]

But I only want to show it on 2-d plane, just like what I want

(colors is not important, just stand for different region)

Is there any way to do it?

Blockquote

$\endgroup$
1
$\begingroup$

You can use ListDensityPlot:

ListDensityPlot[data, ColorFunction -> "SouthwestColors"]

enter image description here

Alternatively, ListContourPlot:

ListContourPlot[data, ColorFunction -> "SouthwestColors", ContourStyle -> None]

enter image description here

Note: ListContourPlot >> Properties and Relations:

ListContourPlot is similar to ListDensityPlot, but with bands of discrete colors.

$\endgroup$
  • $\begingroup$ Your codes is good, but I don't know why ListDensityPlot' is not clear as ListContourPlot, and I think color will changed immediately, no "color line" between two colors (ListContourPlot), do you thinkd so? $\endgroup$ – zongxian May 5 at 8:19
  • $\begingroup$ @zongxian, updated with a link that explains the different looks. $\endgroup$ – kglr May 5 at 8:29
1
$\begingroup$

One way is to use ArrayPlot:

ArrayPlot[data, AspectRatio -> 1, DataReversed -> True, 
                ColorFunction -> "SouthwestColors"]

enter image description here

MatrixPlot works similarly, and you can choose from many color schemes.

$\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.