On Aug 30, 2012, at 12:35PM, Benjamin Root wrote:

> 
> 
> On Thu, Aug 30, 2012 at 3:26 PM, Goyo <goyod...@gmail.com> wrote:
> 2012/8/28 Sterling Smith <smit...@fusion.gat.com>:
> > List,
> >
> > Consider the following script:
> >
> > import pylab
> > pylab.plot(pylab.linspace(0,1,100),label='Test',marker='o',ls='')
> > pylab.plot(pylab.linspace(0,1,100),label='Test2',marker='o',ls='-')
> > leg=pylab.legend(loc='best')
> > line=leg.get_lines()
> > line[0].set_color('black')
> > line[1].set_color('black')
> > pylab.draw()
> >
> > I am attaching the results I see with the TkAgg baackend.  I am using 
> > version 1.1.0.
> >
> > I would expect the markers to change colors also.  However, I can't seem to 
> > find the markers recorded in the legend object to be able to change them.  
> > Is this a bug or a feature (resetting the color could lead to 
> > inconsistencies between legend and plot)?
> 
> 
> I think it's a design issue, there's no connection kept between plot
> lines and the legend. You can change colors in the plot an then call
> legend again instead.
> 
> Cheers
> 
> Goyo
> 
> 
> That is correct.  The lines that one obtains from the get_lines() method of 
> legend are completely new line objects.  It is only upon the creation of 
> those lines (at legend creation) that the lines inherit the plot's line 
> properties.
> 
> Now, in the future, it would be nice for artist objects to have shareable 
> "styles", in which case an edit to a style in one place effects all artists 
> with the same style object.  But that might be something reserved for version 
> 2+.
> 
> Cheers!
> Ben Root
> 

Ben, Goyo,

Thank you for taking the time to consider my question.  I'm sorry that I didn't 
pose my question correctly.  I should have said: 'Consider the _results_ of the 
following script:'  I originally tried to attach the results I obtained, which 
showed no change in color for the markers in the legend, while the line 
connecting the markers in the legend did change color.

I understand that the lines in the legend are new objects; this is desirable in 
my case because I have the same symbol with different colors, where the color 
means one thing (plasma condition), but the symbol means something else 
(simulated vs measured).  So it makes sense for the markers in the legend 
describing the meaning of the symbols to be black, as opposed to any of the 
colors of the markers.   However, setting the legend's new line2d object color 
properties does not change the appearance of the marker in the legend, only the 
appearance of the line.  I suspect that this is because the legend marker is 
drawn separately from the legend line to accommodate the numpoints argument of 
the legend functions.  Then the question is how to access these markers if they 
are separate from the line2d objects in the legend.  I didn't even see them in 
the children of the legend [legend.get_children()].

Thank you for your attention,
Sterling
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to