multiline legend tags

Dear all,

I have a rather complex code that takes a list of file names and of
legend tags from command line and compute contour plots

./contour_plots.py [options] filename1 ... filename2 tag1 ... tagn

The codes make filled contours at required levels, then line contours.

From the latter I extract one line from each file and create a legend

spl.legend(lines, [tag1...tagn], other options)

All it works fine. The only problem is that sometimes I have tags that
are long and I would like to be able to break between multiple lines.
In examples/legend_demo3.py is shown that 'ax1.plot([1],
label="multi\nline")' the \n is interpreted (correctly) as new line.

Normaly I have something like
./contour_plots.py [options] filename1 \(long\)tag\$_\{very long\}\$
that gives me a legend with the correct formatting. If I try to add a
'\n' after 'tag', I get out the tag as before plus a 'n' after 'tag'.
I've tried to enclose the whole string or just \n in "" or r"" but
nothing good happens (either I get 'n' or 'rn').
Is there a way to do what I want to do?

Thanks in advance
Francesco

Francesco Montesano, on 2011-03-17 12:05, wrote:

Dear all,

I have a rather complex code that takes a list of file names and of
legend tags from command line and compute contour plots

./contour_plots.py [options] filename1 ... filename2 tag1 ... tagn

The codes make filled contours at required levels, then line contours.
>From the latter I extract one line from each file and create a legend

spl.legend(lines, [tag1...tagn], other options)

All it works fine. The only problem is that sometimes I have tags that
are long and I would like to be able to break between multiple lines.
In examples/legend_demo3.py is shown that 'ax1.plot([1],
label="multi\nline")' the \n is interpreted (correctly) as new line.

Normaly I have something like
./contour_plots.py [options] filename1 \(long\)tag\$_\{very long\}\$
that gives me a legend with the correct formatting. If I try to add a
'\n' after 'tag', I get out the tag as before plus a 'n' after 'tag'.
I've tried to enclose the whole string or just \n in "" or r"" but
nothing good happens (either I get 'n' or 'rn').
Is there a way to do what I want to do?

Hi Francesco,

If you are using bash, you can insert newlines using the
Enter/Return key if you start an argument with a quote like this:

$ cat commandline.py
#!/usr/bin/env python
import sys
print "Program output:", sys.argv
print sys.argv[-1]

$ ./commandline.py "something
with
newlines"

Program output: ['./commandline.py', 'something\nwith\nnewlines']
something
with
newlines

best,

ยทยทยท

--
Paul Ivanov
314 address only used for lists, off-list direct email at:
http://pirsquared.org | GPG/PGP key id: 0x0F3E28F7