默认情况下,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/x
)ymax=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}