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?
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
···
On Tue, Feb 15, 2011 at 11:07 PM, Victor Hooi <victorhooi@…9…> 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?
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.
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.root@…1304…> wrote:
On Tue, Feb 15, 2011 at 11:07 PM, Victor Hooi <victorhooi@…83…9…> 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
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.