3
\documentclass[addpoints]{exam}

\usepackage{tikz}
\usepgflibrary{arrows}
\begin{document}
\begin{questions}\usepgflibrary{arrows}
\question  Draw the graph of $f(x)=|\log x|$.

Solution:

\definecolor{ccqqqq}{rgb}{0.8,0,0}
\definecolor{cqcqcq}{rgb}{0.75,0.75,0.75}
\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
\draw [color=cqcqcq,dash pattern=on 1pt off 1pt, xstep=1.0cm,ystep=1.0cm] (-1.3,-1.52) grid (5.48,4.3);
\draw[->,color=ccqqqq] (-1.3,0) -- (5.48,0);
\foreach \x in {-1,1,2,3,4,5}
\draw[shift={(\x,0)},color=ccqqqq] (0pt,2pt) -- (0pt,-2pt) node[below] {\footnotesize $\x$};
\draw[->,color=ccqqqq] (0,-1.52) -- (0,4.3);
\foreach \y in {-1,1,2,3,4}
\draw[shift={(0,\y)},color=ccqqqq] (2pt,0pt) -- (-2pt,0pt) node[left] {\footnotesize $\y$};
\draw[color=ccqqqq] (0pt,-10pt) node[right] {\footnotesize $0$};
\clip(-1.3,-1.52) rectangle (5.48,4.3);
\draw[smooth,samples=100,domain=0.000001:5.4] plot(\x,log(\x));
\end{tikzpicture}


\end{questions}

\end{document}

I need to plot $|\log x|$ graph in this portion... How do I do this..

  • 1
    Taking your code as-is, what should happen when you take the log of -1, as given on your last \draw line? – Mike Renfro Jul 27 '15 at 18:17
  • yes you are right.. – David Jul 27 '15 at 18:24
  • but I did for $x>1$ but i could not...@mike – David Jul 27 '15 at 18:25
11

Update

In comments it's been requested to also plot an exponential.

You can use pgfplots:

\documentclass{exam}
\usepackage{amsmath}
\usepackage{pgfplots}

\begin{document}

\begin{questions}
\question  Draw the graph of $f(x)=\lvert\log x\rvert$.

\begin{tikzpicture}
\begin{axis}[
  axis lines=middle,
  samples=100,
  ymax=3
]
\addplot[cyan,domain=0.001:4] {abs(log10(x))};
\addplot[red!70!black,domain=-2:1.4] {exp(x)};

\node[pin={90:$f(x)=\lvert\log x\rvert$},inner sep=0pt] 
  at (axis cs:{2,log10(2)}) {};
\node[pin={0:$f(x)=e^{x}$},inner sep=0pt] 
  at (axis cs:{1,exp(1)}) {};
\end{axis}
\end{tikzpicture}
\end{questions}

\end{document}

enter image description here

  • May u give me in exam class itself.. I need to type a question paper .. – David Jul 27 '15 at 18:31
  • It'll work in the exam class. I basically came up with the same solution in parallel, and used exam. – Mike Renfro Jul 27 '15 at 18:35
  • @David As Mike Renfor said, my answer can be used with any document class you want. I updated with your exam class. – Gonzalo Medina Jul 27 '15 at 18:56
  • @gonzalo yes,, its working with a small mistake.. Once I try to draw $e^x$ in the same graph I got different...can you solve this.. – David Jul 28 '15 at 13:53
7

Here a pure tikz-solution. The axes are drawn using the ifnum command.

\documentclass[tikz, border=6mm]{standalone}

\usepackage{amsmath}

\begin{document}
  \begin{tikzpicture}[>=latex]
    \draw [<->] (0,2.5) node [above] {$y$} |- (4.5,0) node [right] {$x$};
    \foreach \x in {0,...,4} {
        \draw (\x,0) -- ++(0,-4pt) node [below] {$\x$};
        \ifnum\x<3
            \draw (0,\x) -- ++(-4pt,0) node [left] {$\x$};
        \fi
    }
    \draw [thick, cyan, samples=100, domain=0.1:4] plot ({\x},{abs(ln(\x))});
    \draw ({2.5},{abs(ln(2.5))}) -- ++(-.5,.5) node [anchor=south] {$f(x)=\lvert\log x\rvert$};
  \end{tikzpicture}
\end{document}

rendered image

Update:

As percusse pointed out, there is also another possibility for graph/data visualization in tikz:

\documentclass[tikz, border=6mm]{standalone}

\usetikzlibrary{datavisualization.formats.functions}
\usepackage{amsmath}

\begin{document}
  \begin{tikzpicture}
    \datavisualization [>=latex,
                        school book axes,
                        visualize as line=ln,
                        x axis={label=$x$},
                        y axis={label=$y$},
                        ln={style={thick, cyan},
                          label in data={
                            text={\scriptsize $f(x)=\lvert\log x\rvert$},
                            when=x is 3}
                          }
                        ]
        data [set=ln, format=function] {
            var x : interval [0.1:4] samples 100;
            func y = abs(ln(\value{x});
        };
  \end{tikzpicture}
\end{document}

rendered image 2

  • tikz already has a graph visualization option for such things. – percusse Jul 27 '15 at 19:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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