Hi,
On Mon, Aug 18, 2008 at 2:25 PM, Darren Dale <[EMAIL PROTECTED]> wrote:
> Could you post a *simple* script that reproduces the problem? And in the
> meantime, to get a figure that looks better for your publication, can you
> save your figure as an svg, import it into inkscape, tweak the bad placement,
> and then save a pdf?
Thanks for the inkscape suggestion - I usually just use eps and pdf
which I find harder to edit.
Below is the function I use to create the plot. Actually I thought it
happened with all legends, but I think I have just been focussing on
these plots for too long, because when I check now it only seems to
happen when I plot with this function.
plot_stacked(arange(1,6),arange(1,6)) should reproduce the problem.
Perhaps it is something to do with setting the labels to '' to delete
the duplicate copies I don't want?
Thanks,
Robin
def plot_stacked(*vals, **kwargs):
fig = figure()
sub = fig.add_subplot(111)
ticks = kwargs.setdefault('ticks',[])
labels = kwargs.setdefault('labels',False)
numstacks = len(vals)
vallength = set([len(val) for val in vals])
if len(vallength) > 1:
raise ValueError,'All input values should have the same length'
vallength = vallength.pop()
ind = 0.25 + arange(numstacks)
width = 0.5
bottom = zeros(numstacks)
colorvals = arange(vallength) * (1.0/(vallength-1))
orderlabels = ['First Order','Second Order','Third Order','Fourth Order']
if not labels:
labels = orderlabels[:vallength-1] + ['Higher Order']
for i in range(vallength):
ivals = [val[i] for val in vals]
sub.bar(ind, ivals, width,
bottom=bottom, color=str(colorvals[i]),label=labels[i])
bottom += ivals
sub.set_xlim(0,numstacks+1.5)
sub.set_xticks(ind+width/2)
sub.set_xticklabels(ticks)
# remove duplicate labels
tmplabels = []
for rect in sub.patches:
if rect.get_label() in tmplabels:
rect.set_label('')
else:
tmplabels.append(rect.get_label())
sub.legend()
fig.show()
>
> Darren
>
>
> On Monday 18 August 2008 08:47:16 am Robin wrote:
>> Hi,
>>
>> I was wondering if anyone was able to help with this problem of
>> incorrect legend alignment.
>>
>> I am not sure if the original mail did not get through, perhaps
>> because of the attachent, so this time I have put the example here:
>> http://acrids.robince.net/robince/bad_legend.pdf
>>
>> Publication is now imminent and I have a horible feeling I am going to
>> have to do all the plots again in Matlab unless we can resolve this
>> problem - it currently looks very unprofessional.
>>
>> I would appreciate any pointers on where to look to try to resolve this.
>>
>> Thanks
>>
>> Robin
>>
>> On Thu, Jul 10, 2008 at 11:58 PM, Robin <[EMAIL PROTECTED]> wrote:
>> > Hi,
>> >
>> > I have a problem with legends where the vertical spacing is sometimes
>> > a bit funny (lines don't seem to be evenly spaced).
>> >
>> > I am now preparing some figures for publication and this is the last
>> > niggle I'd really like to resolve.
>> >
>> > Is there anything I could do to fix this?
>> >
>> > A small example is attached (I cropped it to just the legend to reduce
>> > file size).
>> >
>> > I am setting the label on the bars I am plotting and then just calling
>> > ax.legend()
>> >
>> > At the risk of putting two queries in one email the only other problem
>> > I have regularly is that small figures resize themselves when the
>> > mouse rolls over them. I am using TkAgg backend on OS X but I think it
>> > happens on other platforms as well. On mouse over the window jiggles
>> > and resizes slightly. When I am saving figures I have to be careful to
>> > call savefig from the command line without touching the window with
>> > the mouse to ensure they save as the correct size. Just wondered if it
>> > was a known issue...
>> >
>> > Apart from these minor things though matplotlib has been performing
>> > great!
>> >
>> > Thanks,
>> >
>> > Robin
>>
>> -------------------------------------------------------------------------
>> This SF.Net email is sponsored by the Moblin Your Move Developer's
>> challenge Build the coolest Linux based applications with Moblin SDK & win
>> great prizes Grand prize is a trip for two to an Open Source event anywhere
>> in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/
>> _______________________________________________
>> Matplotlib-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Matplotlib-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users