# xmin, xmax, ymin, ymax

I am trying to draw a picture of a concave function. I would like the axes to start at (0,0), however when I draw the picture as you can see below the y-axis starts below 0.

I have tried running several codes from previous answers but none of them seem to work. The last one I have tried is this one trying to override values outside the picture:

\documentclass[usenames,dvipsnames]{beamer}

\usepackage{pgfplots}
\pgfplotsset{overwrite option/.style args={#1 with #2}{#1=#2,#1/.code=}}

\begin{document}

\begin{frame}{CONVEX AND CONCAVE FUNCTIONS}
\framesubtitle{DEFINITION}
\textbf{CONCAVE FUNCTION:} is a function where no line segment joining two points on the graph lies above the graph at any point.

{ % begin outer pgfplotsset scope
\pgfplotsset{ymax=5, overwrite option=ymin with 0, overwrite option=xmin with 0, execute at begin axis={\pgfplotsset{width=5cm}}}% the ymin key doesn't work anymore

\begin{tikzpicture}
\begin{axis}[
xmax = 10,
xtick={0,2,4,6,8,10},
ytick={0,2,4,6},
axis lines = left,
domain=0:10,
% minor y tick num=1,
samples=100,
% enlarge x limits=false,
% grid=both,
no markers,
axis equal]
\end{axis}
\end{tikzpicture}
} % end outer pgfplotsset scope
\end{frame}

\end{document}

• It's because of axis equal. Aug 24, 2019 at 10:39
• pfffffff don't believe is working, many many many thanks for this. Yesterday I was doing ma head in quite a while because if I removed that feature the document wouldn't render thinking, poor of me, that it wouldn't hurt having it there Aug 24, 2019 at 13:54
• You can still get the correct output with axis equal, but then you need to change the width/height of the axis. Do you want/need the axis equal feature? (I.e. that 1 unit on the x-axis is the same length as 1 unit on the y-axis.) Aug 24, 2019 at 18:35

I would write your frame on the following way:

\documentclass[usenames,dvipsnames]{beamer}
\usepackage{pgfplots}
\pgfplotsset{compat = 1.16}
%\pgfplotsset{overwrite option/.style args={#1 with #2}{#1=#2,#1/.code=}}

\begin{document}

\begin{frame}
\frametitle{CONVEX AND CONCAVE FUNCTIONS}
\framesubtitle{DEFINITION}
\textbf{CONCAVE FUNCTION:} is a function where no line segment joining two points on the graph lies above the graph at any point.

\begin{center}
\begin{tikzpicture}
\begin{axis}[width=5.5cm,
xmax=11, ymax = 7,
xtick={0,2,...,10},
axis lines = left,
no markers,
samples=100,
every axis plot post/.append style={ultra thick,Mahogany}]
\end{axis}
\end{tikzpicture}
\end{center}
\end{frame}

\end{document}


This is plain TikZ version of Zarko's answer.

\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
\frametitle{CONVEX AND CONCAVE FUNCTIONS}
\framesubtitle{DEFINITION}
\textbf{CONCAVE FUNCTION:} is a function where no line segment joining two points on the graph lies above the graph at any point.

\begin{center}
\begin{tikzpicture}[scale=.5,>=stealth]
\draw[->] (-.3,0)--(11,0);
\draw[->] (0,-.3)--(0,7);
\foreach \i in {0,2,...,10} \draw (\i,0)--+(90:2mm)--+(-90:2mm) node[below]{$\i$};
\foreach \j in {0,2,4,6} \draw (0,\j)--+(0:2mm)--+(180:2mm) node[left]{$\j$};
\draw[cyan,thick,smooth] plot[domain=0:10,samples=200] (\x,{2*\x^(1/2)});
\end{tikzpicture}
\end{center}
\end{frame}
\end{document}


Update: (I am not going to dislike any package.)
Using plain TikZ or pgfplots is matter of taste. I believe that with long and detail documentation, pgfplots did a good job. To use pgfplots, you have to learn many many new keywords, and accepted auto-scaling, auto-labeling, etc. I like to scale graphs and put labels myself: why would I want to be auto-scaled meanwhile I want to care about every single path, every single label ? Therefore, I intend to use plain TikZ as long as it can draw well. This is my experience after drawing hundreds of graphs in Calculus, Differential Equations, Analytic Geometry, .... For beginners, I recommend plain TikZ because it use just basic commands of TikZ.

The following is a comparison of 2 drawings via pgfplots and plain TikZ: auto-scaling that pgfplots implicitly used is [xscale=.31,yscale=.39]. Is there any good reason for these numbers?

\documentclass{standalone}
\usepackage{pgfplots,tikz}
\pgfplotsset{compat = 1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[width=5cm,
xmax=11, ymax = 7,
xtick={0,2,...,10},
axis lines = left,
no markers,
samples=20,
every axis plot post/.append style={thick,red}]
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}[xscale=.31,yscale=.39,>=stealth]
\draw[->] (-.3,0)--(11,0);
\draw[->] (0,-.3)--(0,7);
\foreach \i in {0,2,...,10} \draw (\i,0)--+(90:2mm)--+(-90:2mm) node[below]{$\i$};
\foreach \j in {0,2,4,6} \draw (0,\j)--+(0:2mm)--+(180:2mm) node[left]{$\j$};
\draw[cyan,thick,smooth] plot[domain=0:10,samples=200] (\x,{2*\x^(1/2)});
\end{tikzpicture}
\end{document}

• Thanks for this Black Mild, I see that the picture is exactly the same as the previous answer but with an utterly different code, which one is more "propper"? Aug 24, 2019 at 15:45
• @RubénPérezSanz I don't think one is more proper than the other. In general for function plots though, using pgfplots as you were doing in the first place is often a bit more convenient because pgfplots builds the axis for you, and takes care of scaling. Aug 24, 2019 at 18:33
• I added an update concerning with comments above Aug 25, 2019 at 9:51
• Regarding the last question in your edited answer: pgfplots sets the width/height of the axis, and scales the plot accordingly. Aug 25, 2019 at 18:03