pgfplots produz gráfico inesperado de função simples

pgfplots produz gráfico inesperado de função simples

Quero traçar uma função exponencial simples 2 ^ x. O código que estou usando está abaixo. O gráfico atinge o eixo x onde defino o valor mais baixo para o domínio, -6 no exemplo. O que estou fazendo de errado?

\documentclass{amsbook}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{pgfplots} \pgfplotsset{compat=1.18} \usepgfplotslibrary{fillbetween}
\usepackage{tikz}
\begin{document}
\begin{figure}
\caption{$f(x) = 2^x$} \label{fig:Exp2x}
\begin{tikzpicture}
\begin{axis}[
    mark=none,
    domain= -6:2,
    samples=20,
    smooth,
    axis x line=center,
    axis y line=center,
    xlabel=$x$, xlabel style={anchor=west}]
 \addplot[thick] {2^x};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}

Responder1

Adicione também ymin=-.5, para que seu ymin não seja o valor calculado para sua função. Código completo:

\documentclass{amsbook}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{pgfplots} \pgfplotsset{compat=1.18} \usepgfplotslibrary{fillbetween}
\usepackage{tikz}
\begin{document}
    \begin{figure}
        \caption{$f(x) = 2^x$} \label{fig:Exp2x}
        \begin{tikzpicture}
            \begin{axis}[
                mark=none,
                domain= -2:2,
                samples=50,
                smooth,
                ymin=-.5,% <--
                axis x line=center,
                axis y line=center,
                xlabel=$x$, xlabel style={anchor=west}]
                \addplot[thick] {2^x};
            \end{axis}
        \end{tikzpicture}
    \end{figure}
\end{document}

Saída correta:

insira a descrição da imagem aqui

ADICIONARTambém com o domínio -4:2 Você verá a resposta esperada:

insira a descrição da imagem aqui

Responder2

Você precisa definir onde está a abcissa em seu diagrama. Sua posição padrão selecionada axis linesnão está no lugar esperado.

Sem posição definida explícita da abcissa ela é traçada através do ponto definido pelo ponto inicial do domínio da função de desenho. Dizendo isso, mentir domain=-5:2em y(-5), domain=-2:2mentir em y(-2), mas definir ymin=0mentir em y=0e ymin=-1mentirá em y=0.

De acordo com estes fatos, você observará que nas linhas de eixo selecionadas a distância entre abcissas e ytick=1nos dois primeiros casos são diferentes por serem distâncias entre outras yticks.

Então, se você reescrever seu MWE para:

\documentclass{amsbook}
\usepackage{geometry}
\usepackage{pgfplots} 
\pgfplotsset{compat=1.18}
\usepackage{tikz}

\begin{document}
    \begin{figure}
\caption{$f(x) = 2^x$} \label{fig:Exp2x}
\pgfplotsset{           % common axis settings
    width = 78mm,       % that images are parallel 
    axis lines=center,
    xlabel=$x$, xlabel style={anchor=west},
    ymin=0,             % <--- that abscisa go through y(0)
    samples=101,
    no marks,
}
    \begin{tikzpicture}
\begin{axis}[
    domain=-5:2,
            ]
\addplot +[thick] {2^x};
\end{axis}
    \end{tikzpicture} 
\quad    
    \begin{tikzpicture}
\begin{axis}[
    domain=-2:2,
            ]
\addplot +[thick] {2^x};
\end{axis}
    \end{tikzpicture}
    \end{figure}
\end{document}

o resultado é o que você esperava:

insira a descrição da imagem aqui

Este recurso pgfplotsvocê pode declarar como bug, mas em muitas situações isso é desejado (por exemplo, no eixo logarítmico onde y(0)não existe, ou seja, está em menos infinito).

Para melhor compreensão do acima mencionado, teste seu diagrama quando, para o eixo, você seleciona o estilo padrão e adiciona grida opção ao eixo:

\pgfplotsset{           % common axis setings
    width = 78mm,       % that immages are parralel 
    grid,               % to see grid 
    xlabel=$x$, xlabel style={anchor=west},
    samples=101,
    no marks,
}

Nesses casos os resultados são

insira a descrição da imagem aqui

informação relacionada