TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to draw functions and have used this code. But I don't like to give every function a separate domain, I want to say this function has ymax=4 and ymin=-3. Who can help me?

enter image description here

\begin{tikzpicture}[scale=1, >=latex]
\draw[very thin, color=black, dotted, step=1 cm] (-7,-5) grid (7,5);
\draw[->] (-7.5,0) -- (7.5,0) node[right] {\scriptsize $x$};
\draw[->] (0,-5) -- (0,5.5) node[above] {\scriptsize $f(x)$};
\foreach \x in {-7,-6,...,7} \draw (\x, 1pt) -- (\x,-3pt) node[anchor=north] {\tiny \x};
\foreach \y in {-5,-4,...,5} \draw (1pt,\y) -- (-3pt,\y) node[anchor=east] {\tiny \y};
\draw[color=black, very thick, domain=-2.2:2.1, samples=100]   plot (\x,{-1/3*(\x)^2})
  node[right] {\tiny $p_1$};
\draw[color=black, dashed, domain=-1.1:1.1, samples=100]   plot (\x,{1/6*(\x)^2})
    node[right] {\tiny $p_2$};
\draw[color=black, thick, domain=-2.2:2.2, samples=100]   plot (\x,{-(\x)^2})
    node[right] {\tiny $p_3$};
\draw[color=black, thin, samples=100]   plot (\x,{0.1*(\x)^2}) node[right] {\tiny $p_4$};
share|improve this question
Welcome to TeX.SX! Please make your code compilable, starting with \documentclass{...} and ending with \end{document}. That may seem tedious to you, but think of the extra work it represents for TeX.SX users willing to help you. Help them help you: remove that one hurdle between you and a solution to your problem. – Jubobs Aug 21 '13 at 12:19
up vote 12 down vote accepted

For this type of graph, I recommend using the pgfplots package over tikz, which is limited in terms of control over axis range and function domain. The code below should get you started with pgfplots.

Edit: Use the minor x tick num = n key (and equivalents for y- and z-axes) to specify how many minor ticks ('n', here) you want between two successive major ticks. Be mindful of potential off-by-one errors: n minor ticks translate to n+1 subintervals between two successive major ticks.

enter image description here

            minor x tick num=4, % 4 minor ticks => 5 subintervals
            xlabel={\scriptsize $x$},
            axis x line=middle,
            minor y tick num=4,  % 4 minor ticks => 5 subintervals
            ylabel={\scriptsize $f(x)$},
            axis y line=middle,
            no markers,
        \addplot (x,{-1/3*x^2});
        \addplot (x,{1/6*x^2});
        \addplot (x,{-x^2});
        \addplot (x,{0.1*x^2});
share|improve this answer
@Timperman You can use compat=newest to use whatever the newest version in your system but nevertheless try to update to the new version and use 1.8 key which is the current new version number. – percusse Aug 21 '13 at 13:07
@Timperman remove that line then. And can you put \pgfplotsversion in the document (not preamble) to see what is installed? – percusse Aug 21 '13 at 13:35
Thanks, but that wasn't giving anything, untill I have found how to install the updates with the Tex Live Utility. It updated 261 packages. Thanks everyone for the help! – Arne Aug 21 '13 at 13:57
Glad percusse and I could help, but remember that accepting and upvoting answers is the preferred way here to say “thank you” to users who helped you. – Jubobs Aug 21 '13 at 14:02
@Arne See my edit. – Jubobs Aug 23 '13 at 21:15

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.