# Scatterplot from table with markers set by meta column value

My input data is a txt file with a number of columns and rows. The last column value is always an integer taking a value of 0, 1, 2, or 3.

I need a scatterplot which has a different marker depending on that end value.

\documentclass{article}
\usepackage{pgfplots}
\usepackage{filecontents}
\begin{filecontents*}{data.txt}
12.3458,0.709423,0.018174,10.3177,0.031258,0.360285,0.071809,0
13.3458,0.709423,0.018174,10.3177,0.031258,0.360285,0.171809,0
7.88918,0.037782,0.010597,13.0123,0.027078,0.345659,0.070872,1
8.88918,0.037782,0.010597,13.0123,0.027078,0.345659,0.170872,1
3.29679,0.175776,0.012142,18.2475,0.031448,0.292123,0.141521,2
4.29679,0.175776,0.012142,18.2475,0.031448,0.292123,0.241521,2
3.94161,0.204657,0.002334,2.09774,0.011567,0.278266,0.113811,3
4.94161,0.204657,0.002334,2.09774,0.011567,0.278266,0.213811,3
\end{filecontents*}

\begin{document}

\begin{tikzpicture}
\begin{axis}[width=7cm,height=7cm]
only marks,
%                visualization depends on={value \thisrow{index 7} \as \labela},
%                scatter/@pre marker code/.append style = {/tikz/mark=\labela},
] table[x index=0,y index=6] {\thedata};
\end{axis}
\end{tikzpicture}

\end{document}


Resulting in

When I uncomment the lines, no marks appear.

• I need to define the markers to use: e.g. x, o, sqaure, triangle There are only ever 4.
• Preferably, I need to set their colour (e.g. x is red, o is blue, square is green, triangle is black)
• This graph will be used many times in a document with different data.
• I would like to keep pgfplotstableread within the tikzpicture if possible.

p.187 of the pgfplots manual looks relevant but I can't get any further

There are some other posts that are very close to being helpful, but none of them convert an integer into a marker symbol:

in PGFPlots, use meta data for markers?

Metadata for different colours in PGFPlots

How to plot scatter points using pgfplots with color defined from table rgb values?

You can use it as follows: Don't use macro names starting with \the. That is a special case for TeX and might lead to mistakes that are very difficult to debug.

\documentclass{article}
\usepackage{pgfplotstable}

\begin{document}
\begin{tikzpicture}
12.3458,0.709423,0.018174,10.3177,0.031258,0.360285,0.071809,0
13.3458,0.709423,0.018174,10.3177,0.031258,0.360285,0.171809,0
7.88918,0.037782,0.010597,13.0123,0.027078,0.345659,0.070872,1
8.88918,0.037782,0.010597,13.0123,0.027078,0.345659,0.170872,1
3.29679,0.175776,0.012142,18.2475,0.031448,0.292123,0.141521,2
4.29679,0.175776,0.012142,18.2475,0.031448,0.292123,0.241521,2
3.94161,0.204657,0.002334,2.09774,0.011567,0.278266,0.113811,3
4.94161,0.204657,0.002334,2.09774,0.011567,0.278266,0.213811,3
}\mydata

\begin{axis}[width=7cm,height=7cm]