# PGFplot: Adding a single marker to a graph (while keeping the marker symbol in the legend)

What I want: I want a single marker per graph. EDIT: .. and I want it in the legend, too, of course.

I've got my plots, however, for the plots that include several graphs (that are colour-coded at the moment), markers would be helpful to identify the graphs if printed in b/w. As the displayed data are measurement points (so ... a lot.) and the plot itself is quite small -

What I tried: The topic on Uniformly spaced line markers seems like a good start, but I don't get it right and PGFmanual on markers did not help.

EDIT: I adapted my document according to percusses answer. (I will add the new code below the first MWE) Now, i can specify through the options mark repeat, mark phase and mark indices exactly where my single line marker should be. Unfortunately, this leads to another problem:

Whenever mark phase or mark indices exceed 3, the marker symbol is no longer visible in the legend.

EDIT2: until somebody knows, i'll just use dashed, dotted, loosely dotted.

My MWE looks currently results in the error message I cannot decorate an empty path and looks like this:

\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usetikzlibrary{decorations}
\usetikzlibrary{decorations.markings}
\pgfplotsset{compat=1.12}
3.00000000000000000E5   -4.61253023410550080E-1
1.02940000000000010E7   -4.55672800606340720E-1
5.02699999999999920E7   -3.91807294333980050E-1
8.02519999999999990E7   -3.48624605959662140E-1
1.50209999999999980E8   -1.65721032451684700E-1
3.00119999999999990E8   -1.46435431917354890E0
4.00060000000000040E8   -3.74356509404440270E0
5.00000000000000000E8   -7.38193327106199960E0
}\datat
3.00000000000000000E5   -4.61794340041841340E0
1.02940000000000010E7   -4.67100110335846350E0
5.02699999999999920E7   -6.73887674244128480E0
8.02519999999999990E7   -8.64259069270219630E0
1.50209999999999980E8   -1.12337266256919330E1
3.00119999999999990E8   -1.04363631270434580E1
4.00060000000000040E8   -8.60938872558673650E0
5.00000000000000000E8   -7.25211587497674510E0
}\datav
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
height=5cm,
width=5cm,
legend pos= south east,
legend style={nodes={scale=0.65, transform shape}},
ymin=-30,
ymax=0,
xmin=0,
xmax=5e8,
enlargelimits=0.05,
]
postaction={
decoration={
markings,
mark=between positions 0 and 1 step 0.4
},
decorate,
},
domain=0:16,
samples=10] table [col sep=space]from \datav;
\legend{chocolate, cotton candy};
\end{axis}
\end{tikzpicture}
\end{document}


EDIT MWE:

\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.12}
3.00000000000000000E5   -4.61253023410550080E-1
1.02940000000000010E7   -4.55672800606340720E-1
5.02699999999999920E7   -3.91807294333980050E-1
8.02519999999999990E7   -3.48624605959662140E-1
1.50209999999999980E8   -1.65721032451684700E-1
3.00119999999999990E8   -1.46435431917354890E0
4.00060000000000040E8   -3.74356509404440270E0
5.00000000000000000E8   -7.38193327106199960E0
}\datat
3.00000000000000000E5   -4.61794340041841340E0
1.02940000000000010E7   -4.67100110335846350E0
5.02699999999999920E7   -6.73887674244128480E0
8.02519999999999990E7   -8.64259069270219630E0
1.50209999999999980E8   -1.12337266256919330E1
3.00119999999999990E8   -1.04363631270434580E1
4.00060000000000040E8   -8.60938872558673650E0
5.00000000000000000E8   -7.25211587497674510E0
}\datav
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
legend pos= south east,
ymin=-30,
ymax=0,
xmin=0,
xmax=5e8,
enlargelimits=0.05,
mark options={mark indices=3}, % still visible in legend, but not centered
% mark options={mark indices=4}, % outside the displayed legend line
]
\legend{chocolate, cotton candy};
\end{axis}
\end{tikzpicture}
\end{document}

• Sep 7, 2016 at 16:02
• @SalimBou Thank you, the search did not show this result. A very helpful topic regarding the additional options mark repeat, mark phase, mark indices. Sep 8, 2016 at 7:39
• You can add legend style={mark options={mark indices=2}} to fix mark position on legend even if it changes on graph Sep 9, 2016 at 10:18
• @SalimBou Perfect. Thank you for adding that bit! Sep 9, 2016 at 17:40

Markers are by default placed at the data points and you can select which ones should be marked. I've converted the x axis to a logarithmic to make it visually more readable.

..... Data files here

\begin{document}
\begin{tikzpicture}
\begin{semilogxaxis}[%
legend pos= south east,
legend style={nodes={scale=0.65, transform shape}},
ymin=-30,
ymax=0,
xmin=0,
xmax=5e8,
enlargelimits=0.05,
mark options={mark indices=2},
]

• Could you please explain, how to keep the markers in the legend? mark indices=1 leads to marker at the start of the legend line, mark indices=2 to a plot as you showed it, mark indices=3 to marker at the end of the legend line and at higher indices the markers are not displayed in the legend anymore. How can I fix that? Sep 8, 2016 at 7:47
• {mark repeat = 500, mark phase=400}gave the right single marker position for my original file, unfortunatelymark phase causes the same problem as mark indices and marker not being shown in the legend as soon as mark phase >3. Sep 8, 2016 at 8:01