2

I'm currently working on a project where I need to plot the graph of the function $\sqrt{x-1}$ using the pgfplots package. However, I've encountered an issue – the graph doesn't seem to pass through the point (1,0).

I've included the necessary \usepackage{pgfplots} in my document preamble, and the graph is displaying, but it's not behaving as expected near the point (1,0). I've double-checked my function expression and the package inclusion, but I'm still facing this problem.

enter image description here

Here's a snippet of my code:

\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}
Alain Matthes
  • 95,075
Educ
  • 4,362
  • 4
    Add domain=1:6 to the addplot option. 100 points between -2 and 6 will miss x=1... – Rmano Jan 10 '24 at 20:52
  • And also, have a look at https://tex.stackexchange.com/questions/375337/weird-looking-square-root-on-pgfplots – Rmano Jan 10 '24 at 20:53
  • Finally: look at the warnings and add \pgfplotsset{compat=1.18} to your preamble, after loading pgfplots – Rmano Jan 10 '24 at 20:54

2 Answers2

3

Other alternatives to pgfplots. The function is simple and doesn't require large tools.

version 1 with 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}

Version 2 with LuaLaTeX. I loaded tkz-fct only for the axes

% !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}

enter image description here

Alain Matthes
  • 95,075
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}

enter image description here

Alain Matthes
  • 95,075
Sebastiano
  • 54,118