我想为我的学生创建一个记忆卡游戏,并生成宽度和高度为 6 厘米的二次卡片,然后将其嵌入到将卡片放入网格中的主文件中。
单张卡片可能如下所示:
\documentclass{article}
\usepackage{pgfplots}
\usepackage[T1]{fontenc} % Input format
\usepackage[paperwidth=6cm,paperheight=6cm,top=0cm,bottom=0cm,left=0cm,right=0cm]{geometry}
\begin{document}
\thispagestyle{plain}
\pagenumbering{gobble}
\begin{center}
\vspace*{\fill}
\resizebox{0.9\linewidth}{!}{%
\begin{tikzpicture}[>=stealth]
\begin{axis}[
axis equal,
xtick distance=5,
ytick distance=5,
xmin=-11,xmax=11,
ymin=-11,ymax=11,
grid=both,
axis lines=middle,
minor tick num=4,
enlargelimits={abs=0.5},
axis line style={->},
ticklabel style={font=\tiny,fill=white},
xlabel={$x$},
ylabel={$y$},
]
\addplot[no marks,blue,-] expression[domain=-10:10,samples=100]{2*x+3};
\end{axis}
\end{tikzpicture}
}
\vspace*{\fill}
\end{center}
\end{document}
由于卡片是二次的,并且 x 和 y 范围长度相同(各为 -11 到 11),我预计绘图也是二次的,但事实并非如此:由于某种原因,x 轴比 y 轴长,因此顶部和底部边框比左右边框大。此外,尽管我使用的是中心环境,但绘图并非水平居中。它看起来像这样:
非常感谢您对我所做错的事情的提示!
答案1
为了使轴实际上相等,我们需要使用axis equal image
而不是,并在其前面axis equal
添加一个以正确垂直居中。删除行尾的一些虚假空格可修复水平对齐问题,并将域和范围更改为 [-12,12] 而不是 [-11,11] 可避免因未绘制最终 y 网格线而产生的舍入误差(当我们切换到 时会发生这种情况)。\nointerlineskip
\vspace
pgfplots
axis equal image
\documentclass{article}
\usepackage{pgfplots}
\usepackage[T1]{fontenc} % Input format
\usepackage[paperwidth=6cm,paperheight=6cm,top=0cm,bottom=0cm,left=0cm,right=0cm]{geometry}
\begin{document}
\thispagestyle{plain}
\pagenumbering{gobble}
\begin{center}
\nointerlineskip%<--
\vspace*{\fill}
\resizebox{0.9\linewidth}{!}{%
\begin{tikzpicture}[>=stealth]
\begin{axis}[
axis equal image,%<--
xtick distance=5,
ytick distance=5,
xmin=-12,xmax=12,%<--
ymin=-12,ymax=12,%<--
grid=both,
axis lines=middle,
minor tick num=4,
enlargelimits={abs=0.5},
axis line style={->},
ticklabel style={font=\tiny,fill=white},
xlabel={$x$},
ylabel={$y$},
]
\addplot[no marks,blue,-] expression[domain=-12:12,samples=100]{x^2-5*x};
\end{axis}
\end{tikzpicture}%<--
}%<--
\vspace*{\fill}
\end{center}
\end{document}