*This is one in a series of posts containing short snippets of Sage code for my students to use: see my page on Sage.*

**Plotting a single function**

### Simple plotting of functions can be done with the `plot`

command:

var('t')
f(t) = t^2
plot(f,-1,2)

A slightly more complicated piece of code that yields the same result is

var('t')
f(t) = t^2
plot(f(t),(t,-1,2))

We can restrict the vertical range of the plot with the code

var('t')
f(t) = t^2
plot(f(t),(t,-1,2), ymin=-.5, ymax = 3)

It is possible to add all sort of features to the plot: labels, legends, etc. Note that the labels can be done in LaTeX!

var('t')
f(t) = t^2
plot(f(t),(t,-1,2),ymin=-.5,ymax = 3, axes_labels=['$t$','gallons'], legend_label='$f(t)=t^2$',show_legend=true)

We can also play around with the style of the plot itself:

var('t')
f(t) = t^2
plot(f(t),(t,-1,2),ymin=-.5,ymax = 3, thickness=2, color='purple', linestyle='dashed')

For a whole list of options for plotting, see the Sage plotting page.

Finally, Sage can handle asymptotes… if we tell it to. First try out this code:

var('t')
f(t) = 1/((t-1)*(t+2))
plot(f(t),(t,-3,2),ymin=-10,ymax = 10)

The following, using `detect_poles`

is much better:

var('t')
f(t) = 1/((t-1)*(t+2))
plot(f(t),(t,-3,2),ymin=-10,ymax = 10, detect_poles='show')

**Plotting multiple functions**

In order to plot multiple functions at the same time, we first take advantage of the feature that we can assign names to plots. When we do this, we need to use the `.show()`

command to actually show the plot. We can incorporate many of the display options in to the `.show()`

command:

var('t')
f(t) = t^2
fplot = plot(f(t), (t,-10,10))
fplot.show(xmin = -2, xmax=3, ymin=-1, ymax=5, axes_labels=['$t$',' '])

With these tools in mind, we can easily add the plot of a second function. Take a close look at each line of code here; what does each accomplish?

var('t')
f(t) = t^2
g(t) = 4-t^2
fplot = plot(f(t), (t,-10,10), color='purple')
gplot = plot(g(t), (t,-10,10), color='blue')
mainplot = fplot + gplot
mainplot.show(xmin = -2, xmax=3, ymin=-1, ymax=5, axes_labels=['$t$',' '])

Here is an example of something a bit fancier (and kind of fun)

var('t')
f(t) = t^2 - t^3
g = derivative(f,t)
fplot = plot(f(t), (t,-10,10), color='purple', legend_label='$f(t)$')
gplot = plot(g(t), (t,-10,10), color='blue', legend_label='$f^\prime(t)$')
mainplot = fplot + gplot
mainplot.show(xmin = -1, xmax=2, ymin=-1, ymax=1, axes_labels=['$t$',' '], show_legend=true)

**Saving plots**

We can save a plot as a pdf file using the command `.save()`

. Here is a simple example:

var('t')
f(t) = t^2 - t^3
fplot = plot(f(t), (t,-1,2), ymax=1, ymin=-1,color='purple')
fplot.save(filename='fun-plot.pdf')

If I am going to be using the plot in a LaTeX document, I like to adjust the size. For example:

var('t')
f(t) = t^2 - t^3
fplot = plot(f(t), (t,-1,2), ymax=1, ymin=-1,color='purple')
fplot.save(filename='fun-plot.pdf', figsize=[4,3])

Of course, you can also add in all the other fancy stuff while saving the plot to a pdf!

var('t')
f(t) = t^2 - t^3
fplot = plot(f(t), (t,-1,2),color='purple',legend_label='$f(t)$')
fplot.save(filename='fun-plot.pdf', axes_labels=['$t$', ' '], show_legend=true,ymax=1, ymin=-1,figsize=[4,3])