当我使用“无标记”时,如何防止 pgfplots 错误地呈现线条?

当我使用“无标记”时,如何防止 pgfplots 错误地呈现线条?

我绘制了表格数据,其中所有数据的 y 值均不超过 1.0。然而,在结果图中,有几个峰值超过了 1.0,给人对这些数据点的错误印象: 在此处输入图片描述

当我使用标记绘图时,这并不可见,但我需要使用“无标记”,因为否则它会太忙(小图中有 80 个点)。

我该如何预防?

更新:根据杰克 (Jake) 的要求,这里有一个显示所描述行为的最小示例:

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
    \begin{figure}[ht]
        \begin{tikzpicture}
            \begin{axis}[no markers, grid=major]
                \addplot coordinates{(0, 0.0000000000)
                                     (1, 0.8823529412)
                                     (2, 0.8750000000) 
                                     (3, 1.0000000000) 
                                     (4, 0.8666666667)
                                     (80, 0.0000000000)}[thick];
            \end{axis}
        \end{tikzpicture}
    \end{figure}
\end{document}

当我不把线条弄粗时,问题就不那么明显了,但问题仍然存在(而我想要粗线条)。

答案1

有几种方法可以避免这种情况:您可以通过向轴或各个图提供选项来告诉所有pgfplots角使用圆角或斜角,或者您可以使用降低连接类型从斜接变为斜接的阈值(默认值为 10)。line join=roundline join=bevelmiter limit=<value>

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
    \begin{figure}[ht]
        \begin{tikzpicture}
            \begin{axis}[no markers,grid=major,every axis plot post/.append style={thick}]
                \addplot  coordinates{(0, 0.0) (0, 0.9) (1, 0.9) (2, 1) (3, 0.9) (80, 0)};
                \addplot +[line join=round] coordinates{(0, 0.0) (0, 0.9) (2, 0.9) (3, 1) (4, 0.9) (80, 0)};
                \addplot +[line join=bevel] coordinates{(0, 0.0) (0, 0.9) (3, 0.9) (4, 1) (5, 0.9) (80, 0)};
                \addplot +[miter limit=5] coordinates{(0, 0.0) (0, 0.9) (4, 0.9) (5, 1) (6, 0.9) (80, 0)};
            \end{axis}
        \end{tikzpicture}
    \end{figure}
\end{document}

连接线的不同方式

相关内容