Re: [Matplotlib-users] Access to color cycle?

2014-03-06 Thread Goyo
2014-03-05 21:13 GMT+01:00 Adam Hughes hughesada...@gmail.com:
 Thanks Andreas.  That is correct; however, I'd rather not make this change
 global.  I only want a subset of my plots to have this behavior.  I feel
 like changing the rcparams would change this globally and probably confuse
 users who don't know this is being called.

Try using rc_context:

with plt.rc_context(rc={'axes.color_cycle': ['orange', default_cycle[1::]]}):
plt.plot(...)

This should change the color cycle only within the scope of the with
clause (not tested with this particular rcparam).

Goyo

--
Subversion Kills Productivity. Get off Subversion  Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works. 
Faster operations. Version large binaries.  Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/4140/ostg.clktrk
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Access to color cycle?

2014-03-05 Thread Adam Hughes
Well, the hack wasn't as messy as I thought.  Still feel like there's a
better way...

def show_colors_default():
fig, axfoo = plt.subplots()
clist = []
c = axfoo._get_lines.color_cycle.next()

# Iterate until duplicate is found
while c not in clist:
clist.append(c)
c = axfoo._get_lines.color_cycle.next()

# Reset colorcycle
for i in range(len(clist) -1):
axfoo._get_lines.color_cycle.next()
return clist


On Wed, Mar 5, 2014 at 2:56 PM, Adam Hughes hughesada...@gmail.com wrote:

 Hi,

 I am making a stacked histogram where one must enter the desired colors
 together in a list/array when the histogram is called.  For certain objects
 in my code, it's helpful to assign a color to them, so that they are
 immediately identified across various plots.  Therefore, I essentially want
 to take the color cycle, swap out a few entries for which colors have been
 assigned by the user, and otherwise keep the cycle in tact.  For example,
 if the first object is to be orange, but no other colors are assigned, I
 want something like:

 colors= ['orange', default_cycle[1::]]

 However, according to some threads, the only way to access the color cycle
 that I'm aware of is through a generator stored in:

 axes._get_lines.color_cycle()

 I don't like this approach because iterating through the color cycle will
 cause the next plot to start at a different point in the cycle.  I'm sure I
 can hack something up that gets around this, but there seems to be a
 canonical way to just list all of the default colors in a list once and be
 done with it.  Is this the case?

 Thanks.

--
Subversion Kills Productivity. Get off Subversion  Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works. 
Faster operations. Version large binaries.  Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/4140/ostg.clktrk___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Access to color cycle?

2014-03-05 Thread Andreas Hilboll
On 05.03.2014 20:56, Adam Hughes wrote: Hi,

 I am making a stacked histogram where one must enter the desired colors
 together in a list/array when the histogram is called.  For certain
 objects in my code, it's helpful to assign a color to them, so that they
 are immediately identified across various plots.  Therefore, I
 essentially want to take the color cycle, swap out a few entries for
 which colors have been assigned by the user, and otherwise keep the
 cycle in tact.  For example, if the first object is to be orange, but no
 other colors are assigned, I want something like:

 colors= ['orange', default_cycle[1::]]

 However, according to some threads, the only way to access the color
 cycle that I'm aware of is through a generator stored in:

 axes._get_lines.color_cycle()

If I'm not mistaken, you should be able to set the appropriate rcParam,
i.e.,

   mpl.rcParams['axes.color_cycle'] = ['orange', default_cycle[1::]]

Cheers, Andreas.



 I don't like this approach because iterating through the color cycle
 will cause the next plot to start at a different point in the cycle.
  I'm sure I can hack something up that gets around this, but there seems
 to be a canonical way to just list all of the default colors in a list
 once and be done with it.  Is this the case?

 Thanks.



--
 Subversion Kills Productivity. Get off Subversion  Make the Move to
Perforce.
 With Perforce, you get hassle-free workflows. Merge that actually works.
 Faster operations. Version large binaries.  Built-in WAN optimization
and the
 freedom to use Git, Perforce or both. Make the move to Perforce.

http://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/4140/ostg.clktrk



 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users



-- 
-- Andreas.

--
Subversion Kills Productivity. Get off Subversion  Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works. 
Faster operations. Version large binaries.  Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/4140/ostg.clktrk
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Access to color cycle?

2014-03-05 Thread Adam Hughes
Thanks Andreas.  That is correct; however, I'd rather not make this change
global.  I only want a subset of my plots to have this behavior.  I feel
like changing the rcparams would change this globally and probably confuse
users who don't know this is being called.

I should have realized this before posting, but by putting this into a
function as I've shown above, the foo plot is destroyed, so it doesn't
actually appear in notebooks (which is why I was hesitant to use it in the
first place).  Therefore, reseting the color cycle is not necessary and
this is all that is requried.

def show_colors_default():
axfoo = plt.subplots()[1]
c = axfoo._get_lines.color_cycle.next()

# Iterate until duplicate is found
while c not in clist:
clist.append(c)
return clist

My histogram would merely access this and be done with it.



On Wed, Mar 5, 2014 at 3:07 PM, Andreas Hilboll li...@hilboll.de wrote:

 On 05.03.2014 20:56, Adam Hughes wrote: Hi,
 
  I am making a stacked histogram where one must enter the desired colors
  together in a list/array when the histogram is called.  For certain
  objects in my code, it's helpful to assign a color to them, so that they
  are immediately identified across various plots.  Therefore, I
  essentially want to take the color cycle, swap out a few entries for
  which colors have been assigned by the user, and otherwise keep the
  cycle in tact.  For example, if the first object is to be orange, but no
  other colors are assigned, I want something like:
 
  colors= ['orange', default_cycle[1::]]
 
  However, according to some threads, the only way to access the color
  cycle that I'm aware of is through a generator stored in:
 
  axes._get_lines.color_cycle()

 If I'm not mistaken, you should be able to set the appropriate rcParam,
 i.e.,

mpl.rcParams['axes.color_cycle'] = ['orange', default_cycle[1::]]

 Cheers, Andreas.


 
  I don't like this approach because iterating through the color cycle
  will cause the next plot to start at a different point in the cycle.
   I'm sure I can hack something up that gets around this, but there seems
  to be a canonical way to just list all of the default colors in a list
  once and be done with it.  Is this the case?
 
  Thanks.
 
 
 

 --
  Subversion Kills Productivity. Get off Subversion  Make the Move to
 Perforce.
  With Perforce, you get hassle-free workflows. Merge that actually works.
  Faster operations. Version large binaries.  Built-in WAN optimization
 and the
  freedom to use Git, Perforce or both. Make the move to Perforce.
 

 http://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/4140/ostg.clktrk
 
 
 
  ___
  Matplotlib-users mailing list
  Matplotlib-users@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/matplotlib-users
 


 --
 -- Andreas.


 --
 Subversion Kills Productivity. Get off Subversion  Make the Move to
 Perforce.
 With Perforce, you get hassle-free workflows. Merge that actually works.
 Faster operations. Version large binaries.  Built-in WAN optimization and
 the
 freedom to use Git, Perforce or both. Make the move to Perforce.

 http://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/4140/ostg.clktrk
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users

--
Subversion Kills Productivity. Get off Subversion  Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works. 
Faster operations. Version large binaries.  Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/4140/ostg.clktrk___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users