Re: ListPlot3D help
- To: mathgroup at smc.vnet.net
- Subject: [mg21539] Re: ListPlot3D help
- From: Tobias Oed <tobias at physics.odu.edu>
- Date: Fri, 14 Jan 2000 02:43:58 -0500 (EST)
- Organization: Old Dominion University
- References: <85esnh$pbu@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Luca Bonci wrote: > > Hello, I need to obtain a 3D plot by using a data file. I could not find > > any other way that to use ListPlot3D but it seem that this accepts only > heigths arrays, namely a > rectangular array containing the heights of the surface. In this way I > cannot obtain the right > scales on the x a y axis becasue the x and y data are not considered! > > Is there any way to plot a real three-dimensional set of data written as > > a set of {x,y,z} points? > > Thanks a lot > > Luca Hi luca, I copy pasted this from one of my pojects. Hope this helps Tobias. data=ReadList["!grep -v '#' PI+N.DSG", {(* W *) Real,(* theta *) Real,(* dsg *) Real,(* err *) Real} ]; (* look at the distribution of the points in W costh space *) energies=Union[Map[#[[1]]&,data]] angles=Union[Map[#[[2]]&,data]] values=Union[Map[#[[3]]&,data]] (*********************************************************) (* show distribution of points in energy cos theta range *) distr=Graphics[{Apply[Sequence,Map[Point[Take[#,2]]&,data]]}] Show[distr,Axes->True] (*************************************) (* Look at cuts with constant energy *) dataw0=Map[Cases[data,{#,__}]&,energies] TextPos={Min[angles]+(Max[angles]-Min[angles])/4,Min[values]+(Max[values]-Min[values])/4} dataw1=Map[{ Text["W="<>ToString[#[[1,1]]],TextPos], Map[Point[{#[[2]],#[[3]]}]&,#], Map[Line[{{#[[2]],#[[3]]+#[[4]]/2},{#[[2]],#[[3]]-#[[4]]/2}}]&,#] }&,dataw0]; opts={ Axes->True, PlotRange->{{Min[angles],Max[angles]},{Min[values],Max[values]}}, TextStyle->{FontSize->5} } dataw2=Map[Graphics[#,opts]&,dataw1]; dataw3=GraphicsArray[Table[Take[dataw2,{i,Min[i+3,Length[dataw2]]}],{i,1,Length[dataw2],4}] ,Frame->True ] Show[dataw3] Display["PlotData.W.eps",dataw3,"EPS",{ImageSize->72 #,ImageOffset->{0,72 (#-4)}}&[7]] Display["PlotData.W.eps",dataw3,"EPS",{ImageSize->72 #,ImageOffset->{0,0}}&[7]] (************************************) (* Look at cuts with constant angle *) dataa0=Map[Cases[data,{_,#,__}]&,angles] TextPos={Min[energies]+(Max[energies]-Min[energies])/4,Min[values]+(Max[values]-Min[values])/4} dataa1=Map[{ Text["Cos="<>ToString[#[[1,2]]],TextPos], Map[Point[{#[[1]],#[[3]]}]&,#], Map[Line[{{#[[1]],#[[3]]+#[[4]]/2},{#[[1]],#[[3]]-#[[4]]/2}}]&,#] }&,dataa0]; opts={ Axes->True, PlotRange->{{Min[energies],Max[energies]},{Min[values],Max[values]}}, {TextStyle->{FontSize->5}} } dataa2=Map[Graphics[#,opts]&,dataa1]; dataa3=GraphicsArray[Table[Take[dataa2,{i,Min[i+4,Length[dataa2]]}],{i,1,Length[dataa2],5}] ,Frame->True ] Show[dataa3] Display["PlotData.Cos.eps",dataa3,"EPS",{ImageSize->72 #,ImageOffset->{0,0}}&[7]] (****************************************************************************) (* Three dimensional buisnss *) Get["DiscreteMath`ComputationalGeometry`"] pl=TriangularSurfacePlot[Map[Take[#,3]&,data],{BoxRatios->{1,1,1},DisplayFunction->Identity}]