Re: ContourListPlot
- To: mathgroup at smc.vnet.net
- Subject: [mg66502] Re: ContourListPlot
- From: Peter Pein <petsie at dordos.net>
- Date: Wed, 17 May 2006 03:29:44 -0400 (EDT)
- References: <e4biq2$19v$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
sepp schrieb:
> I plot xyz data in Mathematica with the ContourListPlot command. the x, y axis
> are labelled with the meshrange command. this works fine, but sometimes
> I would prefer only to display some parts of my data, so if the
> original data goes from {x1,x2}, then I would like to show only
> {x1a,x2a} with x1a>x1 and x2a<x2.
> Is there a built in function in Mathematica to realise this?
> thanks!
>
Hello Sepp,
a simple example:
data = Table[{x, y, Sin[x*y]}, {x, -3, 3, 1/5}, {y, -3, 3, 1/5}];
ListContourPlot[data[[All,All,3]], MeshRange -> {{-3, 3}, {-3, 3}}];
<Plot omitted>
Say, you want the range 0<=x<=1/2, -1<=y<=0. Then
data2 =
DeleteCases[Pick[data, Map[0 <= #1[[1]] <= 1/2 && -1 <= #1[[2]] <= 0 & , data, {2}]], {}];
selects the appropriate points; but the range of the values is not necessarily {{0,1/2},{-1,0}}.
So you have to determine the true range:
mr = (Through[{Min, Max}[#1]] & ) /@ Transpose[Flatten[data2[[All,All,{1, 2}]], 1]];
just to check it:
Dimensions[data2]
--> {3, 6, 3}
N[mr]
--> {{0., 0.4}, {-1., 0.}}
ListContourPlot[data2[[All,All,3]], MeshRange -> mr];
shows the restricted Area.
hth,
Peter