To include a graph in your writeup, just include an image of it (perhaps a screenshot) in your PDF.
You can make the graphs however you like---including using a spreadsheet, or R, or Matlab.
Here's a quick way to make a line graph from Python:
import matplotlib.pyplot as plt plt.plot(3,5,'b.') # a blue dot plt.plot(4,-1,'b.') # another blue dot plt.plot([7,8,9],[9,8,7],'rx') # three red x's plt.show()There's lots more information about matplotlib and pyplot online.
Alternatively, you may find the xgraph utility useful; it is very easy to use. A more powerful choice would be gnuplot. Both are described below.
Some of the material below is adapted from Jason Baldridge at UT Austin.
If you are working on your own Linux machine, you should be able to
run graphical programs on one of the ugrad machines if you connect to
it using the
-Y
option: e.g., ssh
-Y USERNAME@ugrad12.cs.jhu.edu
. This option allows
remote programs on ugrad12
to open windows on your
local X Window desktop and send graphics back to them.
If you are working on your own Windows machine, you can use PuTTY and Xming to accomplish the same thing.
Remote graphics over X is painfully slow, however. So you may prefer to work directly on one of the ugrad machines (in Malone 122 / Malone G-61) or install graphing programs on your own machine.
xgraph provides a simple way to create line graphs and scatter
plots. The original version
is here
and is already installed on the ugrad machines, where you can
type man xgraph
for documentation. Alternatively, I
think the version
at www.xgraph.org is a
later version of the same program and is available as an Ubuntu
package called xgraph
.
The following text file specifies a graph:
TitleText: Sample Data "Plot one" 1 2 2 3 3 4 4 5 5 6 "Plot two" 1 1 2 4 3 9 4 16 5 25 "Plot three" 1 10 2 8 3 6 4 4 5 2
This should be pretty self-explanatory: there are three different relationships being plotted. We can optionally name each graph by putting a string in quotes along with the block giving the data. The first column gives x values, the second gives y values.
If the above text is in a file called mydata.txt
, you can
view the graph with the command
xgraph mydata.txt
If the above text is printed by your program myscript, you can view the graph with the command
myscript | xgraph
Use xgraph -P
instead of xgraph
if you
just want to plot the points and not connect them with lines. There
are other options, such as logarithmic plots.
A more powerful alternative is gnuplot. It's available from
gnuplot.info or as the
Ubuntu package gnuplot
, and is already installed on the
ugrad machines.
Let's start by creating two
data files
numbers1.dat
and numbers2.dat
:
1 2 2 3 3 4 4 5 5 6
1 1 2 4 3 9 4 16 5 25
Again, the two columns correspond to x and y coordinates of some points. The following gnuplot commands will plot the data along with a function:
The modifierset xlabel 'My X-axis label' set ylabel 'My Y-axis label' plot 'numbers1.dat' title 'linear', \ 'numbers2.dat' title 'squared' with l, \ sin(x)**2 title 'sinsquared'
with l
says to connect the points with lines.
You can start gnuplot and enter these commands interactively, or you
can put the commands in a file mycommands.txt
and type
Or you can pipe the commands into gnuplot:gnuplot -persist mycommands.txt
myscript | gnuplot -persist
The -persist
option keeps the graph window open after
the gnuplot session ends. Alternatively, you can dump the graph to
a PNG file (for example) by including these gnuplot commands:
Make sure to use those commands before plotting, or else typeset term png set output "myplot.png"
replot
after you use them.
You can then view the PNG file with any of various commands such
as display
, eog
, or
even firefox
. Running the PNG viewer remotely will be
slow, so you may want to pull it down to your local machine first:
scp USERNAME@ugrad12.cs.jhu.edu:myplot.png .
display myplot.png
The Windows alternative to scp
is PSCP.