我的问题是,在我的 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
这是一个纯粹的蒂克兹与原始帖子类似的解决方案(使用axis
Marco 所做的方法可以说更正确!)。
\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}