Plotting Graphs using Gnuplot

A

arslanburney

Hello. Was trying to create a simple plotting function. Wasnt working
however. If i write the same code without putting it inside a function
it works. :S. Could some1 tell me the problem? Heres the code:


# File name Plotting2

import Gnuplot

def plot(original, expected, actual):


if type (original) != type([]):
return False

else:

gp = Gnuplot.Gnuplot()
gp('set data style lines')


# Make the plot items
plot1 = Gnuplot.PlotItems.Data(original, title="Original")
plot2 = Gnuplot.PlotItems.Data(expected, title="Expected")
plot3 = Gnuplot.PlotItems.Data(actual, title="Acutal")


return gp.plot(plot1, plot2, plot3)
 
F

Fuzzyman

Hello. Was trying to create a simple plotting function. Wasnt working
however. If i write the same code without putting it inside a function
it works. :S. Could some1 tell me the problem? Heres the code:

# File name Plotting2

import Gnuplot

def plot(original, expected, actual):

if type (original) != type([]):
return False

else:

gp = Gnuplot.Gnuplot()
gp('set data style lines')

# Make the plot items
plot1 = Gnuplot.PlotItems.Data(original, title="Original")
plot2 = Gnuplot.PlotItems.Data(expected, title="Expected")
plot3 = Gnuplot.PlotItems.Data(actual, title="Acutal")

return gp.plot(plot1, plot2, plot3)

----

import Plotting2 #The name of my file...

Plotting2.plot( [(2,3), (3,4)], [(4,5), (5,6)], [(1,3), (4,8)] )

I've no idea about the answer to your question (I don't know how the
Gnuplot module works and I can't *see* anything obviously wrong with
your code), but this line:

if type (original) != type([])

is better written:

if not isinstance(original, list):

Michael Foord
http://www.ironpythoninaction.com/
 
P

Peter Otten

Hello. Was trying to create a simple plotting function. Wasnt working
however. If i write the same code without putting it inside a function
it works. :S. Could some1 tell me the problem?

Judging from the demo you have to keep a Gnuplot.Gnuplot instance alive. If
you don't, the display window is immediately garbage-collected.
Heres the code:


# File name Plotting2

import Gnuplot

def plot(original, expected, actual):


if type (original) != type([]):
return False

else:

gp = Gnuplot.Gnuplot()
gp('set data style lines')


# Make the plot items
plot1 = Gnuplot.PlotItems.Data(original, title="Original")
plot2 = Gnuplot.PlotItems.Data(expected, title="Expected")
plot3 = Gnuplot.PlotItems.Data(actual, title="Acutal")
gp.plot(plot1, plot2, plot3)
return gp gp = Plotting2.plot( [(2,3), (3,4)], [(4,5), (5,6)], [(1,3), (4,8)] )
raw_input()

By the way, I recommend that you raise an Exception instead of returning a
special value when plot() cannot deal with the arguments passed to it.

Peter
 
H

Helmut Jarausch

Hello. Was trying to create a simple plotting function. Wasnt working
however. If i write the same code without putting it inside a function
it works. :S. Could some1 tell me the problem? Heres the code:


# File name Plotting2

import Gnuplot

def plot(original, expected, actual):


if type (original) != type([]):
return False

else:

gp = Gnuplot.Gnuplot()

Replace this by (from
http://wiki.aims.ac.za/mediawiki/index.php/Python:Gnuplot_module
)
gp = Gnuplot.Gnuplot(persist=1)
gp('set data style lines')


# Make the plot items
plot1 = Gnuplot.PlotItems.Data(original, title="Original")
plot2 = Gnuplot.PlotItems.Data(expected, title="Expected")
plot3 = Gnuplot.PlotItems.Data(actual, title="Acutal")


return gp.plot(plot1, plot2, plot3)


----

import Plotting2 #The name of my file...

Plotting2.plot( [(2,3), (3,4)], [(4,5), (5,6)], [(1,3), (4,8)] )


--
Helmut Jarausch

Lehrstuhl fuer Numerische Mathematik
RWTH - Aachen University
D 52056 Aachen, Germany
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,733
Messages
2,569,439
Members
44,829
Latest member
PIXThurman

Latest Threads

Top