我正在尝试创建图形(附件),但当我这样做时,我的点无法正确绘制。例如,(0,2),绘制 (0,-1)(或非常接近)。我不确定我做错了什么。我在 Overleaf 和 TexShop 中绘制了图形,看看我是否做错了,但无法弄清楚。
任何帮助,将不胜感激。
\documentclass{article}
\usepackage{graphicx} % Required for inserting images
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest,width=6cm}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines=middle,
y axis line style={opacity=0},ytick=\empty,
xmin=0,
xmax=10,
ymin=-3,
ymax=3,
]
\end{axis}
\draw[very thick,blue] (0,2) -- (2,-2) -- (6,1) -- (9,-.5);
\end{tikzpicture}
\end{document}
答案1
TikZ 使用厘米作为默认单位。Pgfplots 使用自己的坐标系来将图形放入可用空间中。这两个系统通常不一样。
如果您想在当前 pgfplots 坐标系中给出 tikz 坐标,您可以在坐标前加上前缀axis cs:
(这适用于所有可用compat
选项):
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{width=6cm}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines=middle,
y axis line style={opacity=0},ytick=\empty,
xmin=0,
xmax=10,
ymin=-3,
ymax=3,
]
\draw[very thick,blue] (axis cs:0,2) -- (axis cs:2,-2) -- (axis cs:6,1) -- (axis cs:9,-.5);
\end{axis}
\end{tikzpicture}
\end{document}
答案2
- 不建议混合
pgfplots
使用纯tikz
语法来在图表中画线。 - 如果出于某些(未知)原因需要这样做,则通过
tikz
命令进行绘制应该在axis
环境内。如果不是,则它将厘米视为默认单位,而不是axis
环境内的缩放距离。 - 使用最新版本
pgfplots
(如果我没记错的话,在版本 1,13 之后)您不需要使用axis cs:
选项来定义线坐标:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18, width=6cm}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines=middle,
ytick=\empty,
xmin=0, xmax=10,
ymin=-3, ymax=3,
]
\draw[thick,blue] (0,2) -- (2,-2) -- (6,1) -- (9,-.5);
\end{axis}
\end{tikzpicture}
\end{document}
使用仅使用语法即可获得相同的结果pgfplots
:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18, width=6cm}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines=middle,
ytick=\empty,
xmin=0, xmax=10,
ymin=-3, ymax=3,
]
\addplot +[thick, no marks] coordinates { (0,2) (2,-2) (6,1) (9,-0.5)};
\end{axis}
\end{tikzpicture}
\end{document}
答案3
我不喜欢pgfplots
,但这是最简单的tikz
作品:
\documentclass{article}
\usepackage{graphicx} % Required for inserting images
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[-latex] (0,0)--(10.3,0) node[right] () {$x$};
\draw[very thick,blue] (0,2) -- (2,-2) -- (6,1) -- (9,-.5);
\end{tikzpicture}
\end{document}
输出: