|
From: Peter B. <pet...@ca...> - 2013-08-23 15:21:13
|
On 08/23/2013 10:43 AM, Benjamin Root wrote:
>
>
> On Fri, Aug 23, 2013 at 9:57 AM, Peter Bloomfield
> <pet...@ca... <mailto:pet...@ca...>> wrote:
>
> Good morning,
>
> I am running openSuSE 12.2, and this morning I upgraded matplotlib
> to v1.3, and now I am having a problem with suptitle.
> I use the following lines to put a title and legend onto a plot figure
>
> import matplotlib.pyplot as plt
>
> plt.figure(1)
>
> plt.suptitle( "Study# : " + os.path.basename(
> inImage_IO.IO_FileName ) + \
>
> "\n" + "{ Acquired : " + \
>
> AcqDateTime.strftime( "%b %d, %Y - $T_o$ @ %H:%M:%S" ) + " }", \
>
> y=0.98, weight="roman", size="large" )
>
> plt.suptitle( "{Creation Date : " + AnalysisTOD + "}",
>
> x=0.86, y=0.03, weight="roman", size="x-small" )
>
>
> Under v1.3, I only get the 'Creation Date : ...' text at the
> bottom of the figure the 'Study# ...' string is not present at the
> top. If I change
> it to
>
> import matplotlib.pyplot as plt
>
> plt.figure(1)
>
> plt.suptitle( "Study# : ", y=0.98, weight="roman", size="large" )
>
> plt.suptitle( "{Creation Date : " + AnalysisTOD + "}",
>
> x=0.86, y=0.03, weight="roman", size="x-small" )
>
> the 'Creation Date : ...' text at the bottom of the figure the
> 'Study# : ' string is at the top.
>
>
> So the problem is in the string construct in the first example.
> Does anybody know of a way to get around this?
>
>
> Thanks in advance
>
>
> Peter
>
>
> Oh, wow... we didn't think anybody was using that "misfeature". This
> was a bug we fixed for 1.3, in that users complained that calling
> plt.title() would update an existing title, but plt.suptitle() would
> not (multiple calls would just result in text overlaid on top of each
> other). We fixed this for 1.3 so that there is a single text object
> that is kept and is revised in subsequent calls to suptitle(). To get
> what you want, you will have to consolidate those strings into one.
>
> Cheers!
> Ben
>
Thanks for getting back to me, but I have tried to do as you suggest,
but to no avail, and here I apologise for my lack of knowledge of
python/matplotlib.
I consolidated the strings into one, titleStr
titleStr = "Study# : " + os.path.basename( inImage_IO.IO_FileName ) + \
"\n" + "{ Acquired : " + \
AcqDateTime.strftime( "%b %d, %Y - $T_o$ @ %H:%M:%S" )
+ " }"
plt.suptitle( titleStr, y=0.98, weight="roman", size="large" )
which should write the string
'Study# : Pos9.img\n{ Acquired : Feb 18, 2003 - $T_o$ @ 14:55:02 }'
at the top of the figure, but it did not, so I thought it is the "\n",
and tried
titleStr = "Study# : " + os.path.basename( inImage_IO.IO_FileName )
plt.suptitle( titleStr, y=0.98, weight="roman", size="large" )
which should write the string
'Study# : Pos9.img'
and this again failed to write the suptitle in the figure.
Am I being dumb (rhetorical)? What is the best way to consolidate the
strings to work with suptitle, many thanks in advance.
Cheers
Peter
--
Peter M. Bloomfield
Physicist,
PET Centre,
Centre for Addiction and Mental Health,
250 College St.,
Toronto, Ontario,
Canada M5T 1R8
Tel: 416 535 8501 Ext. 4243
|