Re: [Matplotlib-users] Histogram with single series - colour coding different ranges?

2011-06-14 Thread Victor Hooi
Ben,

Awesome - thanks for the sample code.

I had to make a slight change - multiplying 'y' by a float doesn't work:

TypeError: can't multiply sequence by non-int of type 'float'


I just did a cast to int, and it worked - not sure if this is a bad practice
in Python though?:

 cs = (['y'] * int(round(0.25 * len(xs + (['g'] * int(round(0.5 *
 len(xs + (['y'] * int(round(0.25 * len(xs


Anyhow, it's a pity I can't use your code with Matplotlib's hist() - as that
definitely made producing histograms bins much easier. It's strange that
colour-coding bars isn't a feature of hist().

I guess I'll have to look at doing all the hist setup/calculations by hand.
Ah well.

Thanks,
Victor

On Wed, Feb 23, 2011 at 03:12, Benjamin Root ben.r...@ou.edu wrote:



 On Tue, Feb 15, 2011 at 11:07 PM, Victor Hooi victorh...@yahoo.comwrote:

 heya,

 Is there an easy way to colour-code a Matplotlib histogram with a single
 set of data?

 So for example, you'd have a bell-shaped histogram, and the middle 50%
 might be green, the regions 20% to the left and right of that might be
 yellow, and the 5% either side beyond that could be red.

 I couldn't seem to find anything in the Matplotlib options for this - any
 suggestions?

 Cheers,
 Victor


 Sure, check out the following:

 import matplotlib.pyplot as plt
 import numpy as np

 xs = np.arange(20)
 ys = np.random.rand(20)
 cs = (['y'] * round(0.25 * len(xs))) + (['g'] * round(0.5 * len(xs))) +
 (['y'] * round(0.25 * len(xs)))

 plt.bar(xs, ys, color=cs)
 plt.show()


 Admittedly, this isn't using matplotlib's hist() function because it only
 allows for one color per dataset.  However, you can use numpy's histogram
 function to get the bins and counts yourself, and then use bar() to make the
 bars.  bar() will allow you to color the bars individually.

 I hope this helps!
 Ben Root


--
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Histogram with single series - colour coding different ranges?

2011-02-24 Thread Goyo
2011/2/22 Benjamin Root ben.r...@ou.edu:

 Admittedly, this isn't using matplotlib's hist() function because it only
 allows for one color per dataset.  However, you can use numpy's histogram
 function to get the bins and counts yourself, and then use bar() to make the
 bars.  bar() will allow you to color the bars individually.

Pylab hist() returns a list of patches so you can also change their properties.

Goyo

--
Free Software Download: Index, Search  Analyze Logs and other IT data in 
Real-Time with Splunk. Collect, index and harness all the fast moving IT data 
generated by your applications, servers and devices whether physical, virtual
or in the cloud. Deliver compliance at lower cost and gain new business 
insights. http://p.sf.net/sfu/splunk-dev2dev 
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Histogram with single series - colour coding different ranges?

2011-02-22 Thread Victor Hooi
heya,

Is there an easy way to colour-code a Matplotlib histogram with a single set
of data?

So for example, you'd have a bell-shaped histogram, and the middle 50% might
be green, the regions 20% to the left and right of that might be yellow, and
the 5% either side beyond that could be red.

I couldn't seem to find anything in the Matplotlib options for this - any
suggestions?

Cheers,
Victor
--
Index, Search  Analyze Logs and other IT data in Real-Time with Splunk 
Collect, index and harness all the fast moving IT data generated by your 
applications, servers and devices whether physical, virtual or in the cloud.
Deliver compliance at lower cost and gain new business insights. 
Free Software Download: http://p.sf.net/sfu/splunk-dev2dev___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Histogram with single series - colour coding different ranges?

2011-02-22 Thread Benjamin Root
On Tue, Feb 15, 2011 at 11:07 PM, Victor Hooi victorh...@yahoo.com wrote:

 heya,

 Is there an easy way to colour-code a Matplotlib histogram with a single
 set of data?

 So for example, you'd have a bell-shaped histogram, and the middle 50%
 might be green, the regions 20% to the left and right of that might be
 yellow, and the 5% either side beyond that could be red.

 I couldn't seem to find anything in the Matplotlib options for this - any
 suggestions?

 Cheers,
 Victor


Sure, check out the following:

import matplotlib.pyplot as plt
import numpy as np

xs = np.arange(20)
ys = np.random.rand(20)
cs = (['y'] * round(0.25 * len(xs))) + (['g'] * round(0.5 * len(xs))) +
(['y'] * round(0.25 * len(xs)))

plt.bar(xs, ys, color=cs)
plt.show()


Admittedly, this isn't using matplotlib's hist() function because it only
allows for one color per dataset.  However, you can use numpy's histogram
function to get the bins and counts yourself, and then use bar() to make the
bars.  bar() will allow you to color the bars individually.

I hope this helps!
Ben Root
--
Index, Search  Analyze Logs and other IT data in Real-Time with Splunk 
Collect, index and harness all the fast moving IT data generated by your 
applications, servers and devices whether physical, virtual or in the cloud.
Deliver compliance at lower cost and gain new business insights. 
Free Software Download: http://p.sf.net/sfu/splunk-dev2dev___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users