tikz 中没有连续双曲线

tikz 中没有连续双曲线

我尝试在 tikz 的 axis 环境中使用简单函数 f(x) = x/(x-1) 绘制一条双曲线。但是,当程序绘制该函数时,它会绘制一条直线,其中函数未定义,即 x=1。

我尝试通过添加第二个图并限制域来修复它,但即使它可以工作,乳胶也会出现以下错误:“尺寸太大”

有没有合适的方法可以删除它?下面是代码和结果(对于我的修改,只需取消注释 addplot 上方的行并限制域)。

韩国

\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}

在此处输入图片描述

答案1

@NFTaussig 在他的评论中提到,从右图的域中,您需要排除 1 附近的点。

由于两个图像具有相同的选项,因此将它们合并并放置在框架的列之前axis是合理的:pgfplotset

\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}

在此处输入图片描述

相关内容