Your perturbed and unperturbed scenarios draw the same figure on my machine
(mpl v1.4.1).

The reason why you don't get any outliers is the following:
Boxplot uses matplotlib.cbook.boxplot_stats under the hood to compute where
everything will be drawn. If you look in there, you'll see this little
nugget:

        # interquartile range
        stats['iqr'] = q3 - q1
        if stats['iqr'] == 0:
            whis = 'range'


When whis = 'range', the whiskers fall back to extending to the min an max.
So that is at least the intent of the code. Open to a different
interpretation of what should be happening, though.

On Wed, Aug 26, 2015 at 1:08 AM, Paul Hobson <pmhob...@gmail.com> wrote:

> Are you running python 2 or python 3? If you're on python 2, what happens
> if you add "from __future__ import division" to the top of your script?
>
> On Tue, Aug 25, 2015 at 10:31 PM, chtan <ch...@unisim.edu.sg> wrote:
>
>> Hi,
>>
>> the outliers in the boxplot do not seem to be drawn in the following
>> extreme
>> scenario:
>> Data Value: 1, Frequency: 5
>> Data Value: 2, Frequency: 100
>> Data Value: 3, Frequency: 5
>>
>> Here, Q1 = Q2 = Q3, so IQR = 0.
>> Data values 1 and 3 are therefore outliers according to the definition in
>> the api
>> (Refer to parameter "whis" under "boxplot":
>> http://matplotlib.org/api/pyplot_api.html
>> <http://matplotlib.org/api/pyplot_api.html>  )
>>
>> But the code below produces a boxplot that shows them as max-min whiskers
>> (rather than fliers):
>>
>> import matplotlib.pyplot as plt
>> data = 100 * [2] + 5 * [1] + 5 * [3]
>> ax = plt.gca()
>> bp = ax.boxplot(data, showfliers=True)
>> for flier in bp['fliers']:
>>     flier.set(marker='o', color='gray')
>>
>> <http://matplotlib.1069221.n5.nabble.com/file/n46027/figure_1.png>
>>
>>
>> What I though it would look like is obtained by perturbing half of the
>> data
>> points 2 to 2.000001:
>>
>> <http://matplotlib.1069221.n5.nabble.com/file/n46027/figure_2.png>
>>
>>
>> Is this a bug or I'm not getting something right?
>>
>> rgds
>> marcus
>>
>>
>>
>> --
>> View this message in context:
>> http://matplotlib.1069221.n5.nabble.com/boxplot-behaviour-in-an-extreme-scenario-tp46027.html
>> Sent from the matplotlib - users mailing list archive at Nabble.com.
>>
>>
>> ------------------------------------------------------------------------------
>> _______________________________________________
>> Matplotlib-users mailing list
>> Matplotlib-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>
>
------------------------------------------------------------------------------
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to