我想const plot mark mid
将提供的样式pgfplots
与\ref
图一起使用。但是引用显示了通常图例中不存在的故障。MWE 是:
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot+[const plot mark mid] coordinates {
(0,0.1) (0.1,0.15) (0.2,0.5) (0.3,0.62)
(0.4,0.3) (0.5,0.2) (0.6,0.25) (0.7,0.1)
}; \addlegendentry{works} \label{plot}
\end{axis}
\end{tikzpicture}
\ref{plot} broken
\end{document}
生成的图像如下所示
我遇到了同样的问题,但这个问题在和以及相应的样式中都jump mark mid
没有出现。我可以假设这是一个错误吗?我该如何解决它?const plot mark left
const plot mark right
jump
答案1
这似乎是一个可以通过以下 MWE 重现的错误:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\tikz[yshift=0.3em] {
\draw[const plot mark mid]
plot coordinates {(0cm,0cm) (0.3cm,0cm) (0.6cm,0cm)};
}
\end{document}
为了实现此效果,需要满足以下先决条件:
const plot mark mid
必须为该命令设置选项\draw
。- 图的坐标列表必须至少有三个坐标。
yshift
必须为宏设置非零值的选项\tikz
。
由于此效果仅发生在const plot mark mid
,您可以通过选项覆盖图例图像legend image code
并告诉它使用其他样式:
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot+[const plot mark mid,
legend image code/.code={
\draw[mark repeat=2, mark phase=2, const plot]
plot coordinates {(0cm,0cm) (0.3cm,0cm) (0.6cm,0cm)};
}] coordinates {
(0,0.1) (0.1,0.15) (0.2,0.5) (0.3,0.62)
(0.4,0.3) (0.5,0.2) (0.6,0.25) (0.7,0.1)
}; \addlegendentry{works} \label{plot}
\end{axis}
\end{tikzpicture}
\ref{plot} no longer broken
\end{document}