# Plotting Trigonometric Functions

I was trying to plot graph of sine functions. I found PSTricks and tried using it, but I have no idea whether there are more standard / more appropriate packages to do this.

Here is what I did (which was miserable):

\psset{unit=1cm}
\begin{center}
\begin{pspicture}(-3.5,-2)(6.5,2)
\psaxes[dx=\pstPI4,trigLabelBase=2,trigLabels]{->}(0,0)(-3.2,-1.25)(6.5,1.25)
\end{pspicture}
\end{center}


Would any of you mind giving me some suggestions on how to make this better? I actually don't really understand why I need to put {-\psPiTwo}{\psPiFour} in the part where it is, but I tried changing that to some other things and they do not seem to work well.

Thanks!

-
I found that plotting using tikz is really easy. For examle with \draw[domain=0:7] plot (\x, {sin(\x)});. But there is also the very convenient pgfplots package, based on tikz/pgf that has even more special purpose commands for drawing plots with axis and all. –  canaaerus Jul 21 '12 at 8:43
@canaaerus Thanks for the package suggestion. So I tried using it and I found out that the code is way more readable. However, I need to specify all the tick marks myself were I to use pi instead of the usual integer tick marks. That part is pretty annoying, but your answer truly makes my life much easier. Thank you very much! –  P. C. Jul 21 '12 at 11:58
The documentation of pst-Plot has a lot of examples. –  Herbert Jul 21 '12 at 12:47
–  cmhughes Jul 21 '12 at 15:44
@cmhughes That post does help a lot, but as I responded, is there a way to do it in tikz/pgf such that I have the pi style labels on the axis without having to list the numbers (like 3.14159....) and listing the \frac{\pi}{2} sort of stuff. –  P. C. Jul 22 '12 at 3:22

Here is something that should get you going.

\documentclass[border=2mm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
grid=both,
domain=-2*pi:2*pi,
samples=200,
no marks,
xticklabels={-2$\pi$,-1.5$\pi$,...$\pi$,2$\pi$},
xtick={-6.2832,-4.7124,...,6.2832},
x post scale=1.5
]
\end{axis}
\end{tikzpicture}
\end{document}


-
Ziz iz not PSTricks. :-) –  kiss my armpit Jul 25 '12 at 14:00
@HiggsBoson Look at ze deuxième comment :P –  percusse Jul 25 '12 at 14:17
I would just switch to pdfplots from now on. It seems easier to understand for me now. Thanks. –  P. C. Jul 29 '12 at 2:43
@P.C.: It is sad if you switched to TikZ because of my horrific answer. :-) Please give me time to explain it in a very easy approach. –  kiss my armpit Jul 29 '12 at 5:17

## Description of the user defined constants:

Note that: the description diagram above uses constants to provide enough spaces for annotations. And the following example uses different constants. Don't get confused!

## User defined constants:

\def\f(#1){sin(#1)}% function to plot
\def\g(#1){1.5*cos(2*#1)}% function to plot

\const{Width}{10}% total width in cm
\const{Height}{4}% total height in cm

\const{POL}{-0.20}% pspicture left offset in cm
\const{POR}{ 0.50}% pspicture right offset in cm
\const{POB}{-0.20}% pspicture bottom offset in cm
\const{POT}{ 0.50}% pspicture top offset in cm

\const{AOL}{-0.20}% axis left offset in cm
\const{AOR}{ 0.30}% axis right offset in cm
\const{AOB}{-0.20}% axis bottom offset in cm
\const{AOT}{ 0.30}% axis top offset in cm

\const{DomL}{-2*pi}% domain left
\const{DomR}{2*pi}% domain right
\const{DomB}{-2}% domain bottom
\const{DomT}{ 2}% domain top

\const[0]{TrigLabelBase}{2}% denominator for a fraction of pi


## Output and the complete code:

\documentclass[border=0pt,pstricks]{standalone}
\usepackage[nomessages]{fp}
\newcommand\const[3][3]{\expandafter\FPeval\csname#2\endcsname{round(#3:#1)}}

% User defined data:
\def\f(#1){sin(#1)}% function to plot
\def\g(#1){1.5*cos(2*#1)}% function to plot

\const{Width}{10}% total width in cm
\const{Height}{4}% total height in cm

\const{POL}{-0.20}% pspicture left offset in cm
\const{POR}{ 0.50}% pspicture right offset in cm
\const{POB}{-0.20}% pspicture bottom offset in cm
\const{POT}{ 0.50}% pspicture top offset in cm

\const{AOL}{-0.20}% axis left offset in cm
\const{AOR}{ 0.30}% axis right offset in cm
\const{AOB}{-0.20}% axis bottom offset in cm
\const{AOT}{ 0.30}% axis top offset in cm

\const{DomL}{-2*pi}% domain left
\const{DomR}{2*pi}% domain right
\const{DomB}{-2}% domain bottom
\const{DomT}{ 2}% domain top

\const[0]{TrigLabelBase}{2}% denominator for a fraction of pi

% Internal used constants:
\const{XUnit}{(Width-POR+POL-AOR+AOL)/(DomR-DomL)}
\const{YUnit}{(Height-POT+POB-AOT+AOB)/(DomT-DomB)}

\const{PicL}{(POL+AOL)/XUnit+DomL}
\const{PicR}{(POR+AOR)/XUnit+DomR}
\const{PicB}{(POB+AOB)/YUnit+DomB}
\const{PicT}{(POT+AOT)/YUnit+DomT}

\const{AxiL}{AOL/XUnit+DomL}
\const{AxiR}{AOR/XUnit+DomR}
\const{AxiB}{AOB/YUnit+DomB}
\const{AxiT}{AOT/YUnit+DomT}

\const{DeltaX}{pi/TrigLabelBase}

\psset{xunit=\XUnit,yunit=\YUnit,algebraic,plotpoints=500}

\begin{document}

\begin{pspicture}[showgrid=false](\PicL,\PicB)(\PicR,\PicT)
\psplot[linecolor=red]{\DomL}{\DomR}{\f(x)}
\psplot[linecolor=blue]{\DomL}{\DomR}{\g(x)}
\psaxes
[
trigLabels=true,
labelFontSize=\scriptscriptstyle,
tickcolor=gray,
ticksize=-1.5pt 1.5pt,
xlabelsep=3pt,
arrowscale=1,
trigLabelBase=\TrigLabelBase,
dx=\DeltaX,% must come before xunit to avoid getting a strange output!
]{->}(0,0)(\AxiL,\AxiB)(\AxiR,\AxiT)[$x$,0][$y$,90]
\end{pspicture}

\end{document}

-
Forgot to remove the irrelevant package pst-eucl. –  kiss my armpit Aug 12 '12 at 19:46