Como mudar o padrão tracejado em pgfplots usando "dash phase": somente no gráfico, não na legenda

Como mudar o padrão tracejado em pgfplots usando "dash phase": somente no gráfico, não na legenda

Como mencionado emessa questão, pode-se usar dash phasepara mudar a posição dos espaços em branco entre os traços de um gráfico. No entanto, isso também altera os espaços em branco na legenda.

É possível deslocar os espaços em branco apenas no gráfico, deixando a legenda inalterada?

MWE

\begin{tikzpicture}
\begin{axis}[
width=3in,
height=3in
]
\addplot [black, dashed]
table {%
0 0
1 1
2 0
3 -.5
};
\addlegendentry{w/o dash phase}
\addplot [black, dashed, dash phase = 8pt]
table {%
1 0
2 1
3 0
4 -.5
};
\addlegendentry{w/ dash phase}
\end{axis}
\end{tikzpicture}

que dá

insira a descrição da imagem aqui

Responder1

Este é o propósito de legend image post style. Você pode usá-lo para redefinir o arquivo dash phase.

\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
width=3in,
height=3in,legend image post style={dash phase=0pt},
]
\addplot [black, dashed]
table {%
0 0
1 1
2 0
3 -.5
};
\addlegendentry{w/o dash phase}
\addplot [black, dashed, dash phase=8pt]
table {%
1 0
2 1
3 0
4 -.5
};
\addlegendentryexpanded{w/ dash phase}
\end{axis}
\end{tikzpicture}

\end{document}

insira a descrição da imagem aqui

informação relacionada