pgfplots создает неожиданный график простой функции

pgfplots создает неожиданный график простой функции

Я хочу построить простую экспоненциальную функцию 2^x. Код, который я использую, приведен ниже. График попадает на ось x, где я установил нижнее значение для домена, -6 в примере. Что я делаю не так?

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

решение1

Добавьте также ymin=-.5, так что ваш ymin не будет значением, вычисленным для вашей функции. Полный код:

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

Правильный вывод:

введите описание изображения здесь

ДОБАВЛЯТЬТакже с доменом -4:2 вы увидите ожидаемый ответ:

введите описание изображения здесь

решение2

Вам нужно определить, где на вашей диаграмме лежит ось абсцисс. Ее положение по умолчанию при выборе axis linesне соответствует ожидаемому вами месту.

Без явного указания положения оси абсцисс она проводится через точку, определяемую начальной точкой области действия функции рисования. При этом, при domain=-5:2она лежит при y(-5), при domain=-2:2она лежит при y(-2), но при определении она будет лежать ymin=0при .y=0ymin=-1y=0

Согласно этим фактам, вы заметите, что на выбранных линиях осей расстояния между абсциссами ytick=1в первых двух случаях различны, поскольку они являются расстояниями между другими ytickлиниями.

Итак, если вы перепишете свой MWE следующим образом:

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

Результат получился именно таким, как вы и ожидали:

введите описание изображения здесь

Эту особенность pgfplotsвы можете объявить ошибкой, но во многих ситуациях это желательно (например, на логарифмической оси, где ее y(0)нет, т.е. при минус бесконечности).

Для лучшего понимания вышесказанного протестируйте свою диаграмму, выбрав для оси стиль по умолчанию и добавив gridк ней опцию:

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

В таких случаях результаты

введите описание изображения здесь

Связанный контент