Pas d'hyperbole continue dans tikz
J'essaye de dessiner une hyperbole avec la fonction simple f (x) = x / (x-1) dans tikz dans l'environnement d'axe. Cependant, lorsque le programme dessine la fonction, il représente une ligne droite où la fonction n'est pas définie, à savoir x = 1.
J'ai essayé de le réparer en ajoutant un deuxième tracé et en restreignant les domaines, et même si cela fonctionne, le latex viendrait avec l'erreur suivante: `` Dimension trop grande ''
Existe-t-il un moyen approprié de le supprimer? Ci-dessous le code et le résultat (pour mon amendement, déconseillez simplement la ligne au-dessus de l'addplot et limitez les domanins).
KR
\documentclass[usenames,dvipsnames]{beamer}
%\usetheme{CambridgeUS}
\definecolor{Red}{RGB}{176,23,31}
%% Useful packages
\usepackage{lipsum,graphicx,subcaption}
\usepackage{float}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathtools}
\usepackage{bm}
\usepackage{mathrsfs}
\usepackage{amsfonts}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}
\usetikzlibrary{fit, calc, matrix, positioning, arrows.meta, intersections, through, backgrounds, patterns}
\usepackage{pgfplots}
\pgfplotsset{compat = newest}
\usepgfplotslibrary{fillbetween}
\pgfplotsset{overwrite option/.style args={#1 with #2}{#1=#2,#1/.code=}}
\pgfplotsset{
vasymptote/.style={before end axis/.append code={\draw[dashed,<->,-{Latex}] ({rel axis cs:0,0} -| {axis cs:#1,0}) -- ({rel axis cs:0,1} -| {axis cs:#1,0}); }},
myaxis/.style={axis line style={<->, {Latex}-{Latex}}}
} % This fancy shit sets the arrows to both parts of the axis in
\begin{document}
\begin{frame}{FUNCTIONS}
\framesubtitle{BASICS}
\textbf{Domain}: the set of numbers (inputs) for which the function has defined outputs.
\textbf{Example:}
\vspace{-20pt
}
\begin{columns}
\column{.4\textwidth}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[
width=6cm,
xscale = 1, yscale = 1,
axis lines = middle,
myaxis,
grid,
grid style={densely dashed},
xmin = -5.5, xmax = 5.5, ymin = -5.5, ymax = 5.5,
every axis/.append style={font=\tiny},
xlabel = {$x$}, xlabel style={at=(current axis.right of origin), anchor=west},
ylabel = $y$, ylabel style={at=(current axis.above origin), anchor=east},
xtick = {-4,-2,0,2,4},
% xticklables = {-2,0,2,4,6},
ytick = {-4,-2,0,2,4},
% yticklables = {-2,0,2,4,6},
samples=100,
domain=-5.5:5.5,
axis equal,
% no markers
]
\addplot[domain=-5:5, thick, RoyalBlue, name path = rb]{ln(x)} node[above, rotate = 0] at (2,2) {$f(x) = ln(x)$} ;
\end{axis}
\end{tikzpicture}
\caption*{$Dom\left(f(x)\right) = \left\{ \forall x\in \mathbb{R} | x>0\right\}$}
% \label{fig:my_label}
\end{figure}
\column{.4\textwidth}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[
width=6cm,
xscale = 1, yscale = 1,
axis lines = middle,
myaxis,
grid,
grid style={densely dashed},
xmin = -5.5, xmax = 5.5, ymin = -5.5, ymax = 5.5,
every axis/.append style={font=\tiny},
xlabel = {$x$}, xlabel style={at=(current axis.right of origin), anchor=west},
ylabel = $y$, ylabel style={at=(current axis.above origin), anchor=east},
xtick = {-4,-2,0,2,4},
% xticklables = {-2,0,2,4,6},
ytick = {-4,-2,0,2,4},
% yticklables = {-2,0,2,4,6},
samples=100,
domain=-5.5:5.5,
axis equal,
% no markers
]
% \addplot[domain=-5:1, thick, YellowOrange, name path = rb]{x/(x-1)} ;
\addplot[domain=-6:6, thick, YellowOrange, name path = rb]{x/(x-1)} node[above, rotate = 0] at (3,3) {$g(x) = \frac{x}{x-1}$} ;
\end{axis}
\end{tikzpicture}
\caption*{$Dom\left(g(x)\right) = \left\{ \forall x\in \mathbb{R} | x\in \mathbb{R}\backslash x=1 \right\}$}
% \label{fig:my_label}
\end{figure}
\end{columns}
\end{frame}
\end{document}
Réponses
Un @NFTaussig mentionné dans son commentaire, à partir du diagramme du domaine à droite, vous devez exclure les points à proximité immédiate de 1.
Étant donné que les deux images ont les mêmes axisoptions, il est judicieux de les fusionner pgfplotsetplacées avant les colonnes dans le cadre:
\documentclass[usenames,dvipsnames]{beamer}
%\usetheme{CambridgeUS}
\setbeamerfont{caption}{size=\footnotesize}
\definecolor{Red}{RGB}{176,23,31}
%% Useful packages
\usepackage{lipsum,graphicx,subcaption}
%\usepackage{float}% have not sense in beamer presentations
\usepackage{mathrsfs}
\usepackage{mathtools, amssymb} % mathtools load amsmath, amssymb load amsfonts
\usepackage{bm}
\usepackage{pgfplots} % it loads tikz too
\pgfplotsset{compat = 1.17}
\usepgfplotslibrary{fillbetween}
\usetikzlibrary{arrows.meta,
backgrounds,
calc,
decorations.pathreplacing,
fit,
intersections,
matrix,
patterns, positioning,
through}
\begin{document}
\begin{frame}{FUNCTIONS}
\framesubtitle{BASICS}
\textbf{Domain}: the set of numbers (inputs) for which the function has defined outputs.
\textbf{Example:}
%\vspace{-20pt}
\pgfplotsset{
width=6cm,
axis lines = middle,
grid,
grid style={densely dashed},
xmin = -5.5, xmax = 5.5, ymin = -5.5, ymax = 5.5,
every axis/.append style={font=\tiny},
xlabel = {$x$}, xlabel style={anchor=west},
ylabel = $y$, ylabel style={anchor=east},
xtick = {-4,-2,0,2,4},
ytick = {-4,-2,0,2,4},
samples=100,
axis equal,
}
\begin{columns}
\column{.45\textwidth}
\begin{figure}
\begin{tikzpicture}
\begin{axis}
\addplot[domain=-5:5, thick, RoyalBlue] {ln(x)} node[above left] {$f(x) = ln(x)$} ;
\end{axis}
\end{tikzpicture}
\caption*{$\mathrm{Dom}\left(f(x)\right) = \left\{ \forall x\in \mathbb{R}\mid x>0\right\}$}
\end{figure}
%
\column{.52\textwidth}
\begin{figure}
\begin{tikzpicture}
\begin{axis}
\addplot[domain=-5:0.9, thick, YellowOrange]{x/(x-1)} ;
\addplot[domain= 1.01:6, thick, YellowOrange]{x/(x-1)} node[xshift=1em,above left] {$g(x) = \frac{x}{x-1}$} ;
\end{axis}
\end{tikzpicture}
\caption*{$\mathrm{Dom}\left(g(x)\right) = \left\{\forall x\in \mathbb{R}\mid x\in \mathbb{R}\neg{x}=1 \right\}$}
\end{figure}
\end{columns}
\end{frame}
\end{document}