diff options
Diffstat (limited to 'gnuplot.py')
-rwxr-xr-x | gnuplot.py | 31 |
1 files changed, 30 insertions, 1 deletions
@@ -16,6 +16,32 @@ class CommandBuffer(object): | |||
16 | def __str__(self): | 16 | def __str__(self): |
17 | return '\n'.join([str(x) for x in self.cmds]) | 17 | return '\n'.join([str(x) for x in self.cmds]) |
18 | 18 | ||
19 | class FileGraph(object): | ||
20 | def __init__(self, fname, xcol=1, ycol=2, error=None, | ||
21 | title=None, | ||
22 | style=None): | ||
23 | self.fname = fname | ||
24 | self.xcol = xcol | ||
25 | self.ycol = ycol | ||
26 | self.error = error | ||
27 | self.title = title | ||
28 | self.style = style | ||
29 | |||
30 | def __str__(self): | ||
31 | return self.get_command() | ||
32 | |||
33 | def get_command(self, default_style=None): | ||
34 | if self.error: | ||
35 | using_txt = "%s:%s:%s" % (self.xcol, self.ycol, self.error) | ||
36 | style = self.style if self.style else "errorbars" | ||
37 | else: | ||
38 | using_txt = "%s:%s" % (self.xcol, self.ycol) | ||
39 | style = self.style if self.style else default_style | ||
40 | style_txt = " with %s" % style if style else "" | ||
41 | title_txt = " title '%s'" % self.title if self.title else "" | ||
42 | return "'%s' using %s%s%s" % \ | ||
43 | (self.fname, using_txt, title_txt, style_txt) | ||
44 | |||
19 | def gnuplot_cmd(graphs, title=None, ylabel=None, xlabel=None, | 45 | def gnuplot_cmd(graphs, title=None, ylabel=None, xlabel=None, |
20 | format='show', term_opts=None, | 46 | format='show', term_opts=None, |
21 | style='linespoints', xrange=None, | 47 | style='linespoints', xrange=None, |
@@ -65,7 +91,10 @@ def gnuplot_cmd(graphs, title=None, ylabel=None, xlabel=None, | |||
65 | for gr in graphs: | 91 | for gr in graphs: |
66 | if type(gr) == str: | 92 | if type(gr) == str: |
67 | # literal plot command | 93 | # literal plot command |
68 | plot.append(gr) | 94 | plot.append(str(gr)) |
95 | elif type(gr) == FileGraph: | ||
96 | # formatter object | ||
97 | plot.append(gr.get_command(style)) | ||
69 | elif len(gr) == 4: | 98 | elif len(gr) == 4: |
70 | par = (gr[0], gr[1], gr[2], gr[3], style) | 99 | par = (gr[0], gr[1], gr[2], gr[3], style) |
71 | plot += ["'%s' using %s:%s title '%s' with %s" % par] | 100 | plot += ["'%s' using %s:%s title '%s' with %s" % par] |