TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I would like to draw a vector field from a data file. I tried to adapt code from Manual for Package pgfplots but this doesn't work

\documentclass{standalone}
\usepackage{pgfplots}

\pgfplotstableread{vector_field.dat}{\loadedtable}

\begin{document}
\begin{tikzpicture}
\begin{axis}[title=Quiver and plot table]
\addplot[blue,quiver={u=\thisrow{u},v=\thisrow{v}},-stealth] table from  \loadedtable;
\end{axis}
\end{tikzpicture}
\end{document}

where data file vector_field.dat is :

x y u v
0 0 1 0
1 1 1 1
2 4 1 4
3 9 1 6
4 16 1 8

During compilation I get for example this error:

! Undefined control sequence.
\pgfk@/data point/quiver/u ->\thisrow
{u}
l.8 ...row{v}},-stealth] table from \loadedtable;
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
! Package PGF Math Error: Unknown function `u' (in '{u}').

Does anyone now how to solve it? I would be grateful for any help.

share|improve this question

I get the error message ! Package PGF Math Error: Unknown function `thisrow_unavailable_load_table_directly'. If I do that, that is, if I use \addplot ... table {vector_field.csv};, the document compiles:

\documentclass{article}
\usepackage{pgfplots}

\begin{filecontents}{vector_field.dat}
x y u v
0 0 1 0
1 1 1 1
2 4 1 4
3 9 1 6
4 16 1 8
\end{filecontents}

\begin{document}
\begin{tikzpicture}
\begin{axis}[title=Quiver and plot table]
\addplot[blue,quiver={u=\thisrow{u},v=\thisrow{v}},-stealth] table {vector_field.dat};
\end{axis}
\end{tikzpicture}
\end{document}
share|improve this answer
    
I'm not sure if I read this answer correctly, but I paste the MWE as is, (pgfplots 1.5.1), and I still get "! Package PGF Math Error: Unknown function 'thisrow_unavailable_load_table_directly'". – sdaau Jul 6 '14 at 6:13
    
I think what he meant is that you should provide the filename instead of using pgfplotstableread to avoid this error. At least, that is how it worked for me. – Alfred M. Sep 18 '14 at 7:45

I'm adding a new answer because the MWE given by Jake is not working for me.

\documentclass{article}
\usepackage{pgfplots}

%To create a .dat file (not required if you already have the file in the same folder)
\begin{filecontents}{vector_field.dat}
    x y u v
    0 0 1 0
    1 1 1 1
    2 4 1 4
    3 9 1 6
    4 16 1 8
\end{filecontents}


\begin{document}
    \begin{tikzpicture}
        \begin{axis}
        % Loading directly the table, as suggested by Jake and Alfred M.
        \addplot[blue,quiver={u=\thisrow{u},v=\thisrow{v}},-stealth] table {vector_field.dat};
        \end{axis}
    \end{tikzpicture}
\end{document}

enter image description here

share|improve this answer
    
Thanks for the heads up, I now corrected the MWE in my answer. – Jake 13 mins ago

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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