轴环境问题:如何确定要绘制 x 轴和 y 轴的域?

轴环境问题:如何确定要绘制 x 轴和 y 轴的域?

假设我想在文档中放置一个整洁的正弦函数图。其源代码是:

\documentclass{standalone}

\usepackage{pgfplots}
\usepackage{tikz}

\usetikzlibrary{calc}

\begin{document}

\begin{tikzpicture}[]
\begin{axis}[
xmin=-11, xmax=11,
ymin=-1.2, ymax=1.2,
grid=both,
axis lines=middle,
minor tick num=9,
axis line style={latex-latex},
ticklabel style={font=\tiny},
axis equal
]

\addplot[line width=0.7pt, blue, samples=500][domain=-11:11]{sin((x*180)/pi)};

\end{axis}
\end{tikzpicture}

\end{document}

并产生以下结果:

在此处输入图片描述

到目前为止一切顺利。但是,假设我想将图表很好地塞进一页,而又不占用太多空间。为此,我想在两侧“切割” y 轴,换句话说,我想强制图表仅在间隔 (a,b)(在 y 轴上)上呈现,而不改变图表的纵横比或其大小。

为此,我写了ymin=-1.2, ymax=1.2,正如你在我的 MWE 中看到的那样。但这对图表没有影响!为什么?我在网上搜索了很长时间来寻找解决问题的方法,但一无所获。

请为我提供一种技术,让我能够完成这项任务。这可以限制渲染整个轴的间隔x 轴,而不仅仅是 y 轴(在本例中不会用到,但在我未来的工作中肯定会有用)。提前谢谢您!

答案1

ymin/ymax不起作用的原因是我认为您有axis equal,并且您没有改变轴的宽度/高度,因此使用默认大小。

如果您删除axis equaly 限制,则会应用,但 x 和 y 单位向量将不相等,如果我理解正确的话,这是您想要的。

width=10cm,height=4cm因此,请尝试通过添加类似的内容来设置大小axis options

在此处输入图片描述

\documentclass[border=5mm]{standalone}

\usepackage{pgfplots}
\begin{document}

\begin{tikzpicture}
\begin{axis}[
xmin=-11, xmax=11,
ymin=-1.2, ymax=1.2,
width=10cm,height=4cm,
grid=both,
axis lines=middle,
minor x tick num=9,
minor y tick num=2,
axis line style={latex-latex},
ticklabel style={font=\tiny},
axis equal
]

\addplot[line width=0.7pt, blue, samples=500, domain=-11:11]{sin((x*180)/pi)};

\end{axis}
\end{tikzpicture}

\end{document}

答案2

使用axis equal image而不是axis equal

在此处输入图片描述

\documentclass[border=3mm]{standalone}
\usepackage{pgfplots}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}[]
\begin{axis}[
xmin=-11, xmax=11,
ymin=-2, ymax=2,
grid=both,
axis lines=middle,
minor x tick num=9,
minor y tick num=1,
axis line style={latex-latex},
ticklabel style={font=\tiny},
axis equal image
]
\addplot[line width=0.7pt, blue, samples=500][domain=-11:11]{sin((x*180)/pi)};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容