Re: Fill between points in ListPointPlot3D not working?
- To: mathgroup at smc.vnet.net
- Subject: [mg84825] Re: Fill between points in ListPointPlot3D not working?
- From: Yu-Sung Chang <yusungwri at gmail.com>
- Date: Wed, 16 Jan 2008 03:22:10 -0500 (EST)
- References: <fmhpvt$bb6$1@smc.vnet.net>
Dear Gareth, Filling->{obj->{obj}} form is not supported in 3D, mainly because they are not well defined in general. I agree that the documentation is misleading in this topic. We could have supported it in particular cases (when the multi datasets have exactly the same dimension), but it would result in some inconsistency. If two sets are far apart, you can use some intermediate value and do two fillings. Otherwise, generating multiple lines directly from the data sounds like the only solution for now. Yu-Sung Chang Kernel Technology Wolfram Research, Inc. On Jan 15, 2:13 am, Gareth Russell <russ... at njit.edu> wrote: > Hi, > > I have a set of {x,y,z} data points to plot using ListPlointPlot3D. I > want to drop a line from each point to a value, zHat, representing the > expected z value for each {x,y} pair, obtained by a function. The > method I thought would work was to generate a matching set of > {x,y,zHat} triples, plot both sets of points, and use Filling to create > the line between each {z,zHat} pair. But I can't get the syntax to > work, despite the documentation making it seem easy. > > Using Mathematica's own data example, here's how to drop a line from > one set of points to the bottom of the plot, and not do anything with > the other set: > > ListPointPlot3D[{Table[Sin[j^2 + i], {i, 0, 3, 0.1}, {j, 0, 3, 0.1}], =E2= > =80=A8 > Table[Sin[j^2 + i] + 3, {i, 0, 3, 0.1}, {j, 0, 3, 0.1}]}, =E2=80=A8 Fill= > ing -> > {1 -> Bottom, 2 -> None}] > > Now, what I thought would work (and looks like it should, according to > the docs) is this: > > ListPointPlot3D[{Table[Sin[j^2 + i], {i, 0, 3, 0.1}, {j, 0, 3, 0.1}], =E2= > =80=A8 > Table[Sin[j^2 + i] + 3, {i, 0, 3, 0.1}, {j, 0, 3, 0.1}]}, =E2=80=A8 Fill= > ing -> > {1 -> None, 2 -> {1}}] > > {1} is suppose to represent the first 'object', which I take to mean > the first set of data. But instead I get this: > > Filling::invfilling: {1->None,2->{1}} must be Axis, Top, Bottom, > Automatic, a numerical or a list of valid Filling entries. >> > > I cannot get Filling to do the right thing. This: > > ListPointPlot3D[{Table[Sin[j^2 + i], {i, 0, 3, 0.1}, {j, 0, 3, 0.1}], =E2= > =80=A8 > Table[Sin[j^2 + i] + 3, {i, 0, 3, 0.1}, {j, 0, 3, 0.1}]}, =E2=80=A8 Fill= > ing -> > {1 -> None, 2 -> 1}] > > Just fills from the second set of points to the value "1". Any > thoughts, before I do it with graphics primitives? > > Thanks... > > -- > Gareth Russell > NJIT