我如何才能从 tikz 图片中的一个点到另一个点画一个箭头?
在下面的例子中,我想从单词数据(大约是坐标 (1982, 88))绘制一个箭头,并让它指向坐标 (1985, 82)。
\documentclass[professionalfont, fleqn]{beamer}
\mode<presentation>
\usetheme{Warsaw}
\usetheme{CambridgeUS}
\usepackage{pgfplots}
\usetikzlibrary{arrows,shapes,positioning}
\graphicspath{{graphics/}}
\begin{document}
\frame
{
\frametitle{Frame Title}
\begin{tikzpicture}
\begin{axis}
[
axis x line = bottom,
axis y line = left,
width = 1.01\textwidth,
height = .63\textwidth, % Adjusted
ymax = 93,
ymin = 27,
ytick = {30,40,...,90},
xmax = 1993,
xmin = 1967,
xtick = {1970, 1980, ..., 1990},
]
\node[anchor=west] at (axis cs:1968.5,89.5){%
\textbullet\ Comment here about data
};
\end{axis}
\end{tikzpicture}
}
\end{document}
答案1
您可以使用node
s 来执行此操作,例如
\node[anchor=west] (source) at (axis cs:1968.5,89.5){\textbullet\ Comment here about data};
\node (destination) at (axis cs:1985,82){};
\draw[->](source)--(destination);
这使
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
[
axis x line = bottom,
axis y line = left,
width = 1.01\textwidth,
height = .63\textwidth, % Adjusted
ymax = 93,
ymin = 27,
ytick = {30,40,...,90},
xmax = 1993,
xmin = 1967,
xtick = {1970, 1980, ..., 1990},
]
\node[anchor=west] (source) at (axis cs:1968.5,89.5){\textbullet\ Comment here about data};
\node (destination) at (axis cs:1985,82){};
\draw[->](source)--(destination);
\end{axis}
\end{tikzpicture}
\end{document}
按照注释,你可以node
使用许多不同的方式(参见tikz & pgf
手册第 3.10 节);您还可以自定义箭头(参见手册第 23 节)。例如,
\draw[->,>=stealth](source) to [out=90,in=90] (destination);
给出
答案2
您可以直接使用坐标绘制:
\draw[->] (axis cs:1982, 88) -- (axis cs:1985, 82);
在环境中axes
工作。我发布了对同一问题的答案,该答案早些时候已发布在LaTeX 社区。
更粗的箭头,正如评论中所要求的:
\draw[->,-triangle 60] (axis cs:1982, 88) -- (axis cs:1985, 82);
或三角形 45、三角形 90。arrows
库提供了一些。若要整体绘制更粗的箭头,请添加thick
或very thick
选项进行绘制。
对于弯曲的箭头,您可以使用弯曲选项,例如
\draw[->,-triangle 60] (axis cs:1982, 88) to[bend right=-60] (axis cs:1985, 82);
答案3
为了完成之前给出的关于曲线箭头的答案:
我找到了一个让我受到启发的解决方案这文章重点关注 gnuplot。
手册的第 14.10 节tikz & pgf
提供了一种类似的方法,即使用抛物线在两点之间绘制弯曲的箭头。该方法可以让您控制箭头的曲线,超出了操作的in
和out
选项所能实现的范围to
,但比贝塞尔曲线(手册的第 14.3 节)更容易使用。
通过使用以下内容扩展您的示例,您应该得到一个漂亮弯曲的箭头:
\draw[->,>=stealth](source) parabola bend (axis cs:1980,40) (destination);
联合国幸运的是我可以没有发布结果图片,因为这是我的第一篇帖子感谢@diabonas 的评论:(:)。