防止 pgfplot 线剪辑而不延伸轴

防止 pgfplot 线剪辑而不延伸轴

默认情况下,pgfplots 有一个坏习惯,就是把峰值切掉 在此处输入图片描述 添加enlarge y limits={abs=0.6pt}似乎可以解决这个问题 在此处输入图片描述 但现在我的轴末端有一个难看的残端

在此处输入图片描述

我宁愿摆脱它​​,但不知道该怎么做。如果有人能给我指明正确的方向,我将不胜感激 :)

平均能量损失

\documentclass{article}

\usepackage{pgfplots}

\pgfplotsset{
    compat=newest,
    no marks,
    axis lines=middle,
    axis on top,
    every axis plot/.append style={very thick},
    enlarge y limits={abs=0.6pt}, % prevent clipping of plot lines
}

\begin{document}

\begin{center}
    \begin{tikzpicture}
        \begin{axis}[domain=0:pi]
            \addplot+{sin(deg(x))};
        \end{axis}
    \end{tikzpicture}
\end{center}

\end{document}

clip=false解决方案存在问题

这是建议,确实似乎解决了这个问题,但它又产生了另一个问题。对于渐近函数(例如,更改为1/xymax=5,则会产生自己的一系列问题。鉴于这是在全局设置中进行的,我宁愿不必担心这一点。

在此处输入图片描述

缩短内轴线的问题

绘制其他一些函数(例如 1/(x+1))时,原点会出现“间隙”。

在此处输入图片描述 在此处输入图片描述

答案1

我不知道这是否适用于所有情况,但可能组合

    enlargelimits={abs=0.6pt},
    inner axis line style={shorten >=0.6pt, shorten <=0.6pt}

会起作用。第一行会将轴限制延长一点,比线宽的一半多一点,这也会延长轴线。第二行会将轴线缩短相同的量。

\documentclass{article}

\usepackage{pgfplots}

\pgfplotsset{
    compat=newest,
    no marks,
    axis lines=middle,
    axis on top,
    every axis plot/.append style={very thick},
    enlargelimits={abs=0.6pt},
    inner axis line style={shorten >=0.6pt, shorten <=0.6pt}
}

\begin{document}

\begin{center}
    \begin{tikzpicture}
        \begin{axis}[domain=0:pi]
            \addplot+{sin(deg(x))};
        \end{axis}
    \end{tikzpicture}
\end{center}

\end{document}

相关内容