如何绘制通过 xy 平面上的三个点的线

如何绘制通过 xy 平面上的三个点的线

我的问题是,在我的 MWE 中,我想画一条过三个点 (-100, 700)、(100, 600) 和 (300, 500) 的线。此外,我该如何标记那条线,我的意思是如何在它附近写出线的数学方程。

这是我目前所做的。

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{intersections}

\begin{document}

\begin{tikzpicture}
  \draw[thick,latex-latex] (-3,0) -- (6,0)node[right]{$x$};
  \draw[thick,latex-latex] (0,-3) -- (0,6)node[above]{$y$};
  \node at (-0.3,-0.3) {};
  \foreach \x/\l in {-2/-300,-1/-100,1/100,2/300,3/500,4/700,5/900}{
    \node[fill,circle,inner sep=1.5pt,label=below:$\l$] at (\x,0) {};
    \node[fill,circle,inner sep=1.5pt,label=left:$\l$] at (0,\x) {};
  }
\end{tikzpicture} 

\end{document}

答案1

这是一个纯粹的蒂克兹与原始帖子类似的解决方案(使用axisMarco 所做的方法可以说更正确!)。

\documentclass{article}

\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[point/.style={fill,circle,inner sep=1.5pt,blue}]
  \draw[latex-latex] (-3,0) -- (5,0)node[right]{$x$};
  \draw[latex-latex] (0,-3) -- (0,5)node[above]{$y$};
  \foreach \x [evaluate=\x as \lab using int(200*\x)] in {-2,-1,1,2,3,4}{
    % scaling 1:200. Have tikz compute the labels via evaluate
    \draw[thin](\x,-0.1)--node[below=1mm]{$\lab$}++(0,0.2); % draw ticks on
    \draw[thin](-0.1,\x)--node[left=1mm]{$\lab$}++(0.2,0);  % the axes
  }
  \draw[<->,thick,blue](-2,4.25)--node[above=3mm,right]{$y=650-\frac12x$}(4,1.25); % our line
  \node[point] at (-0.5,3.5){}; % the styling for point above controls 
  \node[point] at (0.5,3)   {}; % hat these look like
  \node[point] at (1.5,2.5) {};
\end{tikzpicture}

\end{document}

得出的结果为:

在此处输入图片描述

答案2

我不确定这是否是你真正想要的。我不明白指向轴的双箭头。

\documentclass[border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{width=8cm,compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
                axis y line=middle,
                axis x line=middle,
                xlabel=$x$,ylabel=$y$,
                enlargelimits=0.2,
                xmin=-300,xmax=900,
                ymin=-300,ymax=900,
                       ]
\addplot[mark=none] coordinates {(-100,700) (100,600) (300,500)};
\node[black] at (400,649.5) {\footnotesize{$y=-\frac{1}{2}x+650$}};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案3

这里有一个使用datavisualization库的解决方案蒂克兹。该函数通过两种不同的方法绘制两次:

  • 绘图点(设置=点(青色)
  • 函数定义(设置=功能, 红色的)

轴是根据所提问题调整的。如果没有轴,include value轴会短得多。此外,您还需要缩放轴以length=<>限制图片的大小。

如果您想在数据点的位置添加标记,您可以使用points={style={mark=*, mark options={<...>}, cyan}}样式定义。

\documentclass[tikz, border=5mm]{standalone}

\usetikzlibrary{datavisualization.formats.functions}

\begin{document}
  \begin{tikzpicture}
    \datavisualization[
        school book axes,
        all axes={length=4cm, include value=1000, include value=-200},
        x axis={ticks={step=200}, label=$x$},
        y axis={ticks={step=500, major also at={650}}, grid={major at={650}}, label=$y$},
        visualize as line/.list={points, func},
        points={style={cyan}},
        func={
            style={red, ultra thick},
            pin in data={text={$y=-\frac{1}{2}x+650$}, when=x is 100}   
        },
    ]
    data [set=points] {
        x, y
        -100, 700
        100, 600
        300, 500
    }
    data [set=func, format=function] {
        var x : interval [-100:300] samples 100;
        func y = -.5 * \value x + 650;  
    };
  \end{tikzpicture}
\end{document}

渲染图像

相关内容