
He estado usando pgfplots
para graficar por un tiempo y recientemente me encontré con una situación en la que necesito graficar funciones racionales. La mayoría de estos han funcionado bien, pero uno me ha provocado el error "Dimensión demasiado grande". Aquí está mi código:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[axis lines=middle, ymax=10, ymin=-10, xlabel=$x$, ylabel=$y$]
\addplot[only marks, scatter, scatter src=explicit, point meta=y] coordinates {
(-4, 4)
(-3, 5)
(-2, 10)
(-1, -5)
(0, 0)
(1, 1)
(2, 1.429)
};
\addplot[smooth, domain=-10:-1.5, variable=\x, samples=301, unbounded coords=jump, variable=\x] {(5 * \x) / (2 * \x + 3)};
\addplot[smooth, domain=-1.5:10, variable=\x, samples=301, unbounded coords=jump, variable=\x] {(5 * \x) / (2 * \x + 3)};
\addplot[dashed, domain=-10:10] {5 / 2};
\draw[dashed] ({axis cs:-1.5,0}|-{rel axis cs:0,0}) -- ({axis cs:-1.5,0}|-{rel axis cs:0,1});
\end{axis}
\end{tikzpicture}
\end{document}
Esto se puede evitar restringiendo los dominios de los gráficos segundo y tercero a -3:-1.5
y 1.5:3
, respectivamente. No veo cómo podría obtener un número demasiado grande y solo puedo imaginar que esto sea un problema de desbordamiento decimal. ¿Como puedo solucionar este problema?
Respuesta1
unbounded coords
La clave funciona solo si obtienes una inf
coordenada precisa. Sin embargo, si la coordenada se vuelve demasiado grande pero no, inf
intenta procesar ese número y aparece este error. Para evitar este tipo de problemas utilice restrict <x,y> to domain
la clave
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\begin{document}
\begin{tikzpicture}
\begin{axis}[axis lines=middle, ymax=10, ymin=-10, xlabel=$x$, ylabel=$y$,restrict y to domain=-10:10 ]
\addplot[only marks, scatter, scatter src=explicit, point meta=y] coordinates {
(-4, 4)
(-3, 5)
(-2, 10)
(-1, -5)
(0, 0)
(1, 1)
(2, 1.429)
};
\addplot[domain=-10:-1.5,samples=301, unbounded coords=discard] {((5*x)/(2*x + 3))};
\addplot[domain=-1.5:10, samples=301, unbounded coords=discard] {((5*x)/(2*x + 3))};
\addplot[dashed, domain=-10:10] {5 / 2};
\draw[dashed] ({axis cs:-1.5,0}|-{rel axis cs:0,0}) -- ({axis cs:-1.5,0}|-{rel axis cs:0,1});
\end{axis}
\end{tikzpicture}
\end{document}