
我目前正在開發一個項目,需要使用 pgfplots 套件繪製函數 $\sqrt{x-1}$ 的圖形。然而,我遇到了一個問題——圖表似乎沒有通過點 (1,0)。
我已在文件序言中包含了必要的 \usepackage{pgfplots},並且圖表正在顯示,但它在點 (1,0) 附近的表現並不如預期。我已經仔細檢查了我的函數表達式和套件包含,但我仍然面臨這個問題。
這是我的程式碼片段:
\documentclass{article}
\usepackage{graphicx} % Required for inserting images
\usepackage{booktabs}
\usepackage{tkz-tab}
\usepackage{pgfplots}
\begin{document}
\begin{center}
\begin{tikzpicture}
\begin{axis}[
xlabel={$x$},
ylabel={$y$},
axis lines=middle,
xmin=-2, xmax=6,
ymin=-2, ymax=4,
grid=major,
domain=-2:6,
restrict y to domain=-2:6,
samples=100,
xtick={-2,-1,0,1,2,3,4,5,6},
ytick={-2,-1,0,1,2,3,4,5,6},
]
\addplot[blue, thick] {sqrt(x-1)};
% Add a node with the text in blue
\node[blue] at (axis cs: 5, 2.5) {$(\mathcal{C}_{f})$};
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}
答案1
pgfplots 的其他替代品。功能簡單,不需要大型工具。
版本 1 與tkz-fct
\documentclass{standalone}
\usepackage{tkz-fct}
\begin{document}
\begin{tikzpicture}[gridded]
\tkzInit[xmin=-0,xmax=6,ymin=-1,ymax=4]
\tkzAxeX \tkzAxeY
\tkzFct[domain=1:6,samples=800,draw=blue,thick]{sqrt(x-1)}
\end{tikzpicture}
\end{document}
帶有 LuaLaTeX 的版本 2。我tkz-fct
只加載了軸
% !TEX TS-program = lualatex
\documentclass{article}
\usepackage{tkz-fct}
\begin{document}
\directlua{
function f(t0, t1, n)
local dt = (t1-t0)/n
local t = t0
local out=assert(io.open("tmp.table","w"))
local x,y
while (t <= t1) do
x = t
y = math.sqrt(t-1)
out:write(x, " ", y, " i\string\n")
t = t + dt
end
out:close()
end
}
\begin{tikzpicture}[gridded]
\tkzInit[xmin=-0,xmax=6,ymin=-1,ymax=4]
\tkzAxeX \tkzAxeY
\directlua{f(1,6,100)}
\draw[domain=1:6,thick,blue] plot[smooth] file {tmp.table};
\end{tikzpicture}
\end{document}
答案2
\documentclass[12pt]{article}
\usepackage{graphicx} % Required for inserting images
\usepackage{pgfplots}
\begin{document}
\begin{center}
\begin{tikzpicture}
\begin{axis}[
xlabel={$x$},
ylabel={$y$},
axis lines=middle,
axis equal, % Ensure equal scaling on both axes
xmin=0, xmax=6,
ymin=0, ymax=3,
grid=major,
domain=1:6,
restrict y to domain=0:3,
samples=500,
xtick={0,1,2,3,4,5,6}, % Include 0 in xticks
ytick={0,1,2,3},
]
\addplot[blue, thick] {sqrt(x-1)};
% Add a node with the text in blue
\node[blue] at (axis cs: 5, 2.5) {$(\mathcal{C}_{f})$};
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}