有没有办法用 pgfplot/tikz 在我指定的域内仅使用 2 个点(即它会自行延伸到这些点)绘制一条连续线?
答案1
您可以使用shorten
负长度来延长边缘。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (a) {A};
\node [right of=a,node distance=3em] (b) {B};
\draw [shorten >=-3em,shorten <=-3em] (a) edge (b);
\end{tikzpicture}
\end{document}
答案2
使用 PSTricks。
\documentclass[pstricks,border=12pt,12pt]{standalone}
\usepackage{pst-eucl}
\begin{document}
\begin{pspicture}[showgrid=false](6,4)
\pstGeonode[PosAngle=-90](2,2){A}(4,2){B}
\pstLineAB[nodesep=-1]{A}{B}
\end{pspicture}
\end{document}
各种各样的
\documentclass[pstricks,border=12pt,12pt]{standalone}
\usepackage{pst-eucl}
\begin{document}
\multido{\r=.0+-0.2}{11}{%
\begin{pspicture}[showgrid=false](6,4)
\pstGeonode[PosAngle=-90](2,2){A}(4,2){B}
\pstLineAB[nodesep=\r]{A}{B}
\end{pspicture}}
\end{document}
答案3
您还可以使用线性回归来计算直线,并为 ddesire 域绘制该直线。以下代码指定了 的点(1,1)
和 ,(3,5)
并绘制了它们之间的直线domain=-5:5
:
笔记:
- 根据您的应用,这可能有点过度,但是此解决方案提供了两点之间线的实际“图形”(这可能是或可能不是所希望的)。
- 请注意,这似乎不适用于垂直线,因此需要特殊处理。
代码:
\documentclass{article}
\usepackage{pgfplots,pgfplotstable}
\begin{document}
\begin{center}
\begin{tikzpicture}
\begin{axis}[
axis x line=middle, axis y line=middle,
xlabel=$x$,
ylabel=$y$,
grid,
]
\addplot table [y={create col/linear regression={}}]
{
X Y
1 1
3 5
};
\xdef\slope{\pgfplotstableregressiona}
\xdef\yintercept{\pgfplotstableregressionb}
\addplot [draw= red, ultra thick, domain=-5:5] (x,\slope*x+\yintercept);
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}
答案4
您可以使用 tikzlibraly 的另一种方式calc
来延长线路。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\node (a) {A};
\node [right of=a,node distance=3em] (b) {B};
\draw ($(a)!-1.5em!(b)$) -- ($(a)!4.5em!(b)$);
\end{tikzpicture}
\end{document}