I recently learned about the possibility to create custom plot marks using the \pgfdeclareplotmark
option. However, from browsing the manual, the usage is not entirely clear to me.
I would like to have a marker style for crossed-out circles. Here's what I came up with:
\pgfdeclareplotmark{xo}{%
\pgfpathcircle{\pgfpointorigin}{\pgfplotmarksize}%
\pgfpathmoveto{\pgfqpoint{-1.2\pgfplotmarksize}{-1.2\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{1.2\pgfplotmarksize}{1.2\pgfplotmarksize}}%
\pgfpathmoveto{\pgfqpoint{-1.2\pgfplotmarksize}{1.2\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{1.2\pgfplotmarksize}{-1.2\pgfplotmarksize}}%
\pgfusepathqstroke
}
This already works nicely, but I'd like to customize this a bit more:
- I want the cross-mark to have a color different from the circle, preferably such that it can be given as an argument.
- It would be nice to have the lines of the cross to be drawn a bit more squiggly, possibly akin to the cross mark (
\ding{55}
).
Here's an MWE, showing what my current attempt looks like (and how the cross-mark would ideally look like).
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{pifont}
\newcommand{\xmark}{\ding{55}}%
\begin{document}
\pgfdeclareplotmark{xo}{%
\pgfpathcircle{\pgfpointorigin}{\pgfplotmarksize}%
\pgfpathmoveto{\pgfqpoint{-1.2\pgfplotmarksize}{-1.2\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{1.2\pgfplotmarksize}{1.2\pgfplotmarksize}}%
\pgfpathmoveto{\pgfqpoint{-1.2\pgfplotmarksize}{1.2\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{1.2\pgfplotmarksize}{-1.2\pgfplotmarksize}}%
\pgfusepathqstroke
}
\begin{tikzpicture}
\begin{axis}[xlabel=$x$,ylabel=$y$]
\addplot[smooth,mark=xo,black] plot coordinates {
(0,2)
(2,3)
(3,1)
};
\node[anchor=west] at (0.2,0.5) {Can you make it look like an \textcolor{red}\xmark{}?};
\end{axis}
\end{tikzpicture}
\end{document}
Best Answer
With the help of
Inkscape
and the glorioussvg2tikz
extension (as well as converting back and forth the image a couple of times), I was able to come up with a solution: