Grafik Umum
Saya ingin membuat grafik umum untuk mengilustrasikan sebuah titik (mis. mx+bDan show badalah intercept dan mslope). Saya memahami bahwa saya dapat membuat grafik dengan penamaan sumbu manual, tetapi saya juga ingin dapat menempatkan label bdi intersep, memberi label beberapa titik dan memberi label msebagai kemiringan. Saya mengerti bahwa saya mungkin harus memasukkan nilai integer yang tidak terkait, tetapi yang penting adalah pelabelan.
Sebagai bonus tambahan, saya juga ingin menunjukkan bagaimana saya dapat menyesuaikan fitur tertentu dan garis akan berubah. (mungkin juga label pada panah tapi saya lupa memasukkannya ke dalam sketsa)
Saya telah melampirkan beberapa sketsa singkat tentang gagasan umum di bawah ini untuk kejelasan. Bagaimana saya mencapai ini?
Jawaban
Alternatif di Metapost yang dibungkus luamplib. Kompilasi ini dengan lualatex.
Ikuti link di atas untuk tutorial dan manual yang menjelaskan cara kerja 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}
Sintaks untuk mendapatkan y'poin agak rumit; tetapi MP memungkinkan spasi antar elemen variabel suffixbegitu z0 1juga nama yang valid untuk variabel, dan zsihir makro biasa , artinya x0 1dan y0 1merujuk ke bagian x dan y seperti biasa.
Untuk titik awal dan hanya untuk gambar pertama.
\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}