# plotting tan()

When I enter these lines:

p = plot(tan(x), x, -pi, pi)
p.show(xmin=-pi, xmax=pi, ymin=-10, ymax=10)


in cloud.sagemath, I get a graph with vertical lines at -pi/2 and pi/2.

Can someone tell me why these asymptotes are drawn? Is there a way to eliminate them?

edit retag close merge delete

Those are NOT asymptotes. They are connecting the top of the randomly selected points super-close to the asymptotes, and so they look like asymptotes. What the answer does is show how to have those not connected.

( 2013-11-16 03:45:16 -0500 )edit

Thanks for your comment. It does raise some questions, at least for this novice. How does the answer 'show how to have these not connected'? And how would you plot the graph with 'real' aymptotes (I understand that they would look the same as the connecting lines). I mean, I get that you could just draw vertical lines at multiples of pi/2, but is there an option that has plot(tan(x)...) draw the asymptotes? Thanks for any help.

( 2013-11-19 07:52:44 -0500 )edit

See http://www.sagemath.org/doc/reference/plotting/sage/plot/plot.html#sage.plot.plot.plot and in particular "detect_poles - (Default: False) If set to True poles are detected. If set to show vertical asymptotes are drawn."

( 2013-11-19 10:28:36 -0500 )edit

As I said to tmonteil (elsewhere on this page), that's what the document says, but it's not what the sage does. When you enter: sage: plot(tan(x), x, -pi, pi, detect_poles=show) you just get the graph of y = tan(x), without asymptotes. I thought perhaps this was because I was trying out cloud.sagemath, but then I tried the line in my downloaded version of sage (Sage Version 5.8, Release Date: 2013-03-15) and got the same result. And it's true if you enlarge the graph thus: sage: p = plot(tan(x), x, -pi, pi, detect_poles=show) sage: (p).show(xmin=-pi, xmax=pi, ymin=-10, ymax=10) I don't think the docs describe this behavior of plot() correctly. If you agree I think I'll send a little note to the people who maintain the docs. I appreciate your patience and interest.

( 2013-11-19 23:27:56 -0500 )edit

( 2013-11-20 01:36:36 -0500 )edit

Sort by » oldest newest most voted

Your problem is that you are putting something in for detect_poles that is not 'show'.

Compare the following.

sage: plot(tan(x), x, -pi, pi, detect_poles=True)
sage: plot(tan(x), x, -pi, pi, detect_poles=show)
sage: plot(tan(x), x, -pi, pi, detect_poles='show')


The first two are equivalent, because show is an actual function, hence Python evaluates it as a True boolean:

sage: bool(show)
True


But of course that will give the same behavior. You need the quotes in the last one to make the asymptotes appear. That is why the word is given as "show" and not show in the documentation.

That said, this will still be a not-so-helpful graph unless you use additional keywords.

sage: plot(tan(x), x, -pi, pi, detect_poles='show', ymin=-50,ymax=50)


This is also the type of example given in the documentation:

sage: plot(gamma, (-3, 4), detect_poles = 'show').show(ymin = -5, ymax = 5)


Hope this helps!

more

Hey, it is great!

( 2013-11-20 01:56:56 -0500 )edit

That's it! Thanks so much. You're a very good teacher.

( 2013-11-20 05:30:54 -0500 )edit

Awww, thanks! Enjoy using Sage.

( 2013-11-20 14:05:09 -0500 )edit

You can try with detect_poles=True :

sage: p = plot(tan(x), x, -pi, pi, detect_poles=True)
sage: p.show(xmin=-pi, xmax=pi, ymin=-10, ymax=10)


You can get the documentation of the plot function by typing:

sage: plot?

more

Thanks so much for your prompt and correct advice. 'detect_poles=True' solved the problem. Sage seems wonderful, both the the system and the community! Just a little comment (probably in the wrong place): I also took your advice and tried 'plot?', and I found this - "detect_poles - (Default: False) If set to True poles are detected. If set to show vertical asymptotes are drawn." But when I set detect_poles=show, vertical asymptotes were NOT drawn. They WERE drawn when I set detect_poles=False. Seems like perhaps two options are called for: a 'detect_poles' AND a 'show_asymptotes' one. Thanks again.

( 2013-11-16 03:00:28 -0500 )edit

If your problem has been solved, you should accept the answer. That will show everyone a solution has been found and give tmonteil points for helping you.

( 2013-11-16 03:05:56 -0500 )edit

I'm not sure how to accept the answer. I clicked the thumbs-up icon and the check-mark icon. Is that all I have to do? Thanks.

( 2013-11-16 03:45:14 -0500 )edit

It's been a while since I've done it myself so I'm not sure. I think there's a check mark located under the the thumbs down symbol and clicking on the check mark changes the color to green, thereby indicating you accept the answer. Only you can see it (if you're logged in) because it's your question to decide whether to accept.

( 2013-11-16 07:57:18 -0500 )edit

Thanks dazed, that did it!

( 2013-11-16 09:23:23 -0500 )edit