我想繪製一個簡單的指數函數 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=0
和在ymin=-1
它將位於y=0
。
根據這個事實,您將觀察到,在選定的軸線上,橫座標 和ytick=1
前兩種情況之間的距離是不同的,因為它們是其他ytick
s 之間的距離。
因此,如果您將 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,
}
在這種情況下,結果是