[Matplotlib-users] duplicating a line object

Slavin, Jonathan jslavin at cfa.harvard.edu
Fri Oct 16 11:09:48 EDT 2015


Hi Ben,

Hmm, traitlets sound interesting, though I want one of the traits (i.e. the
marker edge width) to differ.

Actually, it turns out that copying using copy does work.  I'm not sure
what I was doing wrong before, but now I'm getting what I wanted.

Regards,
Jon

On Fri, Oct 16, 2015 at 10:37 AM, Benjamin Root <ben.v.root at gmail.com>
wrote:

> Traitlets might be the solution here. You set up your proxy artist to have
> properties that are linked to the properties of the plot object. When one
> is updated, the other gets updated as well. The automatic linking of plot
> objects to legend proxy artists is is one of the many benefits that would
> come about with the future inclusion of traitlets in matplotlib. However, I
> don't think you need to wait for us to get that aspect working. Since you
> are already creating proxy artists, I think it shouldn't be that much more
> effort to link their properties together with traitlets.
>
> Unfortunately, the documentation is fairly sparse, and examples are
> minimal as well. I know there was some decent examples during the SciPy
> tutorials, but I can't seem to find it at the moment...
>
> Ben Root
>
>
> On Fri, Oct 16, 2015 at 10:10 AM, Slavin, Jonathan <
> jslavin at cfa.harvard.edu> wrote:
>
>> Hi,
>>
>> I have a plot on which I want to plot many points as open circles.  I
>> also want to include a legend.  The problem is that while a thin marker
>> edge width works very nicely for the plot, it is difficult to see in the
>> legend.  My solution, which does work, is to define Line2D objects as proxy
>> artists and keep all the attributes the same except the mew, which I
>> increase.  However, this seems error prone: if one changes attributes of
>> the line, then one has to also make those same changes to the proxy artist
>> line.  I thought a better solution was to create the proxy artist as a
>> duplicate (copy) of the line and then change the mew via line.set_mew(n).
>> However, I haven't been able to figure out how to duplicate a Line2D
>> object.  I tried copy and deepcopy from the python builtin copy module, but
>> those didn't work.  Any help on this (including alternative ways of
>> approaching the problem) would be appreciated.
>>
>> Thanks,
>> Jon
>>
>> --
>> ________________________________________________________
>> Jonathan D. Slavin                 Harvard-Smithsonian CfA
>> jslavin at cfa.harvard.edu       60 Garden Street, MS 83
>> phone: (617) 496-7981       Cambridge, MA 02138-1516
>> cell: (781) 363-0035             USA
>> ________________________________________________________
>>
>>
>> _______________________________________________
>> Matplotlib-users mailing list
>> Matplotlib-users at python.org
>> https://mail.python.org/mailman/listinfo/matplotlib-users
>>
>>
>


-- 
________________________________________________________
Jonathan D. Slavin                 Harvard-Smithsonian CfA
jslavin at cfa.harvard.edu       60 Garden Street, MS 83
phone: (617) 496-7981       Cambridge, MA 02138-1516
cell: (781) 363-0035             USA
________________________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20151016/8a84d1e4/attachment-0001.html>


More information about the Matplotlib-users mailing list