Касательная на графике tikz

Касательная на графике tikz
\documentclass[12pt,a4paper]{article}
\usepackage{graphicx}
\usepackage{amsmath,amssymb}
\usepackage{tikz}



\begin{figure}[H]
\begin{center}
\begin{tikzpicture}[scale=1.2,smooth,domain=-2*pi:2*pi];
% First line looks reasonable
\draw[blue = solid,  thick ] plot   [domain=0:5*pi/12](\x,{tan(\x r)});
% second line is not goo
\draw[blue = solid,  thick ] plot    [domain=27*pi/45:17*pi/12](\x,{tan(\x r)});

\draw[blue = solid,  thick ] plot   [domain=1.6*pi:29*pi/12](\x,{tan(\x r)});

\end{tikzpicture}
\caption{Graph of $y = \tan\theta$}
\label{fig:graphtan}
\end{center}
\end{figure}

решение1

Ниже приведено решение PSTricks. Просто для развлечения!

Функции

Функция, которую я здесь предлагаю, заключается в том, что вы можете заранее определить размер диаграммы. Например, общая ширина должна быть , 10 cmа ее высота должна быть 4 cm. Вы также можете указать смещения, чтобы сделать границу, метки и стрелки достаточно свободными и сбалансированными.

Выход

введите описание изображения здесь

Пользовательский интерфейс

\def\f(#1){tan(#1)}% function to plot
\def\g[#1]{cos(#1)}% function to plot
\def\h#1{sin(#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

Объяснение пользовательского интерфейса

Обратите внимание, что следующая диаграмма использует разные значения для предоставления пространства для аннотаций. Если вы пытаетесь сопоставить значения, описанные выше, с соответствующими аннотациями ниже, то вы сравниваете апельсин с бананом!

введите описание изображения здесь

Полный код

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


% User defined data:
\def\f(#1){tan(#1)}% function to plot
\def\g[#1]{cos(#1)}% function to plot
\def\h#1{sin(#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,yMaxValue=\AxiT,yMinValue=\AxiB]{\DomL}{\DomR}{\f(x)}
%    \psplot[linecolor=green]{\DomL}{\DomR}{\g[x]}
%    \psplot[linecolor=blue]{\DomL}{\DomR}{\h{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}

Примечания

Скомпилируйте код с помощью latex->dvips->ps2pdf.

решение2

запустить с xelatexилиlatex->dvips->ps2pdf

\documentclass[a4paper,12pt]{article}
\usepackage{pst-plot}

\begin{document}

\begin{pspicture}(-5.5,-7)(6.5,6.5)
\psaxes[trigLabelBase=2,dx=\psPiH,
   xunit=\psPi,trigLabels]{->}(0,0)(-1.7,-5.5)(1.77,5.5)[$x$,0][$y$,90]
\psplot[algebraic,yMaxValue=5,linewidth=1.6pt,plotpoints=2000,
  linecolor=red]{-4.55}{4.55}{tan(x)}
\psline[linestyle=dashed](-\psPiH,-5)(-\psPiH,5)

\psline[linestyle=dashed](\psPiH,-5)(\psPiH,5)
\end{pspicture} 

\end{document}

введите описание изображения здесь

Связанный контент