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.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
>
>
------------------------------------------------------------------------------
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

Reply via email to