0
$\begingroup$

I have two csv files. One that contains the site locations of a lattice and then other that contains the locations corresponding vector data.

I import both data sets as:

Spins = {{-0.378353,0.599086,0.705652},{0.680068,0.116473,0.723838},{-0.358016,0.539119,0.762349},{0.742107,0.0656055,0.667063}}
Sites = {{0.,0.,0.},{-0.204124,-0.353553,0.57735},{-0.408248,-0.707107,1.1547},{-0.612372,-1.06066,1.73205}}

From here I wish to plot the spins at the respective location. My initial attempt was to plot it as follows:

ListVectorPlot3D[Transpose[{Sites, Spins}]]

However, this fails to generate a useful plot.

After googling it, it seams that I could use Graphics3D. However, there must surly be a better way.

$\endgroup$

1 Answer 1

2
$\begingroup$

You may use MapThread with Arrow:

Spins = {{-0.378353, 0.599086, 0.705652}, {0.680068, 0.116473, 
   0.723838}, {-0.358016, 0.539119, 0.762349}, {0.742107, 0.0656055, 
   0.667063}};
Sites = {{0., 0., 0.}, {-0.204124, -0.353553, 
   0.57735}, {-0.408248, -0.707107, 1.1547}, {-0.612372, -1.06066, 
   1.73205}};

Graphics3D[{MapThread[Arrow[{#1, #1 + #2}] &, {Sites, Spins}]}, 
 Axes -> True]

enter image description here

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.