Gráficos generales
Me gustaría crear un gráfico general para ilustrar un punto (por ejemplo, mx+by mostrar bes la intersección y la mpendiente). Entiendo que puedo crear un gráfico con nombres de ejes manuales, pero también me gustaría poder colocar una etiqueta ben la intersección, etiquetar un par de puntos y etiquetar mcomo pendiente. Entiendo que es posible que tenga que ingresar valores enteros no relacionados, pero el etiquetado es lo que importa.
Como beneficio adicional, también me gustaría poder mostrar cómo puedo ajustar ciertas características y la línea cambiaría. (quizás también una etiqueta en la flecha, pero olvidé incluir eso en el boceto)
Adjunto un par de bosquejos rápidos de la idea general a continuación para mayor claridad. ¿Cómo lograría esto?
Respuestas
Una alternativa en Metapost envuelta en luamplib. Compile esto con lualatex.
Siga el enlace anterior para ver tutoriales y manuales que explican cómo funciona MP.
\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
beginfig(1);
numeric u, m, m', b, b';
u = 1.44cm;
b = 3.6u; b' = b + 7/8 u;
m = -1; m' = 7/8 m;
path xx, yy;
xx = (left -- 5 right) scaled u;
yy = xx rotated 90;
numeric minx, maxx; path ff, gg;
minx = xpart point 1/16 of xx;
maxx = xpart point 15/16 of xx;
ff = (minx, minx * m + b) -- (maxx, maxx * m + b);
gg = (minx, minx * m' + b') -- (maxx, maxx * m' + b');
z0 = point 0.4 of ff;
z1 = point 0.54 of ff;
z1 0 = whatever [point 0 of gg, point 1 of gg]; x1 0 = x0;
z1 1 = whatever [point 0 of gg, point 1 of gg]; x1 1 = x1;
forsuffixes @=0, 1:
draw (x@, 0) -- z@ -- (0, y@) dashed evenly scaled 3/4;
draw z@ -- z1 @ -- (0, y1 @) dashed withdots scaled 1/2;
label.bot("$x_{" & decimal @ & "}$", (x@, 0));
label.lft("$y_{" & decimal @ & "}$", (0, y@));
label.lft("$y'_{" & decimal @ & "}$", (0, y1 @));
endfor
draw ff withcolor 2/3 red;
draw gg withcolor 3/4 blue;
drawarrow xx; drawarrow yy;
label.rt("$x$", point 1 of xx);
label.top("$y$", point 1 of yy);
dotlabel.urt("$b$", (0, b));
dotlabel.urt("$b'$", (0, b'));
draw thelabel("slope: $m=" & decimal m & "$", 7 up)
rotated angle (1, m) shifted point 2/3 of ff;
draw thelabel("slope: $m'=" & decimal m' & "$", 7 up)
rotated angle (1, m') shifted point 2/3 of gg;
endfig;
\end{mplibcode}
\end{document}
La sintaxis para obtener los y'puntos es un poco complicada; pero MP permite espacios entre los elementos de una variable, suffixpor lo que z0 1es un nombre válido para una variable, y la zmagia de macros habitual significa eso x0 1y se y0 1refiere a las partes xey como de costumbre.
Para un punto de partida y solo para la primera imagen.
\documentclass[margin=3mm]{standalone}
\usepackage{tikz}
\newcommand{\LinearEquation}
{%
\pgfmathsetmacro{\Slopef}{-1}% slope of the line 1
\pgfmathsetmacro{\Interceptf}{6}% intercept
\pgfmathsetmacro{\Slopes}{-0.9}% slope of the line 2
\pgfmathsetmacro{\Intercepts}{5}% intercept
\begin{tikzpicture}[>=latex]
\draw[->] (-1,0)--(8.3,0)node[below]{$x$};
\draw[->] (0,-1)--(0,8.3)node[left]{$y$};
\draw[very thick,red, domain=0:5] plot (\x,\Slopef*\x+\Interceptf);
\node at (0,\Interceptf)(b)[left]{$b$} ;
\def\x1{1.5}
\def\y1{\Slopef*\x1+\Interceptf}
\draw [dashed,blue](\x1,0)node[below]{$x1$}--(\x1,\y1)--(0,\y1)node[left]{$y1$};
\def\x2{3}
\def\y2{\Slopef*\x2+\Interceptf}
\draw [dashed,blue](\x2,0)node[below]{$x2$}--(\x2,\y2)--(0,\y2)node[left]{$y2^\prime$};
\draw[very thick,red, domain=0:5] plot (\x,\Slopes*\x+\Intercepts);
\node at (0,\Intercepts)(b)[left]{$b$} ;
\def\x1{1.5}
\def\y1{\Slopes*\x1+\Intercepts}
\draw [dashed,blue](\x1,0)node[below]{$x1$}--(\x1,\y1)--(0,\y1)node[left]{$y1^\prime$};
\def\x2{3}
\def\y2{\Slopes*\x2+\Intercepts}
\draw [dashed,blue](\x2,0)node[below]{$x2$}--(\x2,\y2)--(0,\y2)node[left]{$y2$};
\draw [<-](2.8,3.5)--(5,3.5)node[right]{Slope $m$};
\draw [<-](2.9,2.5)--(5,2.5)node[right]{Slope $m^\prime$};
\end{tikzpicture}%
}
\begin{document}
\LinearEquation
\end{document}