# Making a ListVectorPlot3D from data in an external file

I have a .dat file with six columns: {x y z vx vy vz}, where x, y, z are space coordinates and vx, vy, vz are the vector components.

How can I use this file to get a ListVectorPlot3D image? Because I tried to arrange the data as {{x,y,z}, {vx,vy,vz}} and Mathematica still gives me an error message:

ListVectorPlot3D::vfldata ... is not a valid vector field dataset or a valid list of datasets.

I haven't found many related question about this, just one about using Graphics and drawing each vector, but I think it would be simpler to use ListVectorPlot.

• Can you upload a sample of you data please? Jun 6, 2013 at 1:46
• Ok, here is a sample: link Jun 6, 2013 at 2:02
• How very odd... all your data points lie in a plane? Jun 6, 2013 at 2:28
• Yes, it's a 2D plane and I wanted 3D vectors, so I put z=0 for all the vectors Jun 6, 2013 at 2:30
• This is a bit weird David. I don't have time to poke around much more - I'm sure someone here knows what's happening there Jun 6, 2013 at 2:34

data = Import["http://pastebin.com/download.php?i=VByC3ZEg", "Table"];


and transformed it into a vector field, deleting duplicated entries:

vecdata = Partition[#, 3] & /@ DeleteDuplicates[data];


As noted in a comment, the base points all lie in the xy-plane (and the z-components of the vectors are nearly the same):

vecdata[[All, 1, 3]] // Union

{0.}

vecdata[[All, 2, 3]] // Union

{-1., -0.998891, -0.995571, -0.990063, -0.982406}


Since the points lie in a plane, ListVectorPlot3D cannot interpolate a vector field over a region in space and plot it. I can suggest two different visualizations, plotting the vectors themselves (as you considered) and projecting the vectors onto the plane and plotting that field.

The 3D vectors:

Graphics3D[{ColorData, Arrowheads[Medium], Arrow[{First@#, Total@#}] & /@ vecdata}] 2D ListVectorPlot:

ListVectorPlot[Map[Most, vecdata, {2}]] • Thanks! I've learned a lot with your answer. When I plot with all my data, the box is too small in height. Is there a way to get a larger box in Graphics3D? Jun 6, 2013 at 3:29
• @DavidWinchester Set BoxRatios -> {1,1,1} or whatever relative sizes you want. Thank you, too. Jun 6, 2013 at 3:31