diff options
| author | Björn B. Brandenburg <bbb@cs.unc.edu> | 2010-05-23 18:00:16 -0400 |
|---|---|---|
| committer | Björn B. Brandenburg <bbb@cs.unc.edu> | 2010-05-25 15:53:13 -0400 |
| commit | 18b4566ab4a9e67947b80be07598e09bd2532546 (patch) | |
| tree | bb80e53731d185a76fe6f12be8880dc8d8f57a9b | |
| parent | 473e87dba9e01cd4439d179603da7dec4aa32a63 (diff) | |
support writing files for plot3d
| -rw-r--r-- | util.py | 10 |
1 files changed, 9 insertions, 1 deletions
| @@ -8,7 +8,8 @@ def load_csv_file(fname, *args, **kargs): | |||
| 8 | f.close() # don't leak file handles | 8 | f.close() # don't leak file handles |
| 9 | return data | 9 | return data |
| 10 | 10 | ||
| 11 | def write_csv_file(fname, rows, header=None, width=None): | 11 | def write_csv_file(fname, rows, header=None, width=None, |
| 12 | break_col=None): | ||
| 12 | if fname is None: | 13 | if fname is None: |
| 13 | f = Tmp() | 14 | f = Tmp() |
| 14 | else: | 15 | else: |
| @@ -22,10 +23,17 @@ def write_csv_file(fname, rows, header=None, width=None): | |||
| 22 | f.write('#') | 23 | f.write('#') |
| 23 | f.write(", ".join([fmt % str(x) for x in header])) | 24 | f.write(", ".join([fmt % str(x) for x in header])) |
| 24 | f.write('\n') | 25 | f.write('\n') |
| 26 | last_row = None | ||
| 25 | for row in rows: | 27 | for row in rows: |
| 28 | # Insert extra line breaks for Gnuplot plot3d plotting whenever | ||
| 29 | # the value of break_col changes. | ||
| 30 | if not last_row is None and not break_col is None: | ||
| 31 | if last_row[break_col] != row[break_col]: | ||
| 32 | f.write('\n') | ||
| 26 | f.write(' ') | 33 | f.write(' ') |
| 27 | f.write(", ".join([fmt % str(x) for x in row])) | 34 | f.write(", ".join([fmt % str(x) for x in row])) |
| 28 | f.write('\n') | 35 | f.write('\n') |
| 36 | last_row = row | ||
| 29 | if fname is None: | 37 | if fname is None: |
| 30 | # keep it open | 38 | # keep it open |
| 31 | f.flush() | 39 | f.flush() |
