#395 XYBoxAndWhiskerRenderer doesn't support AutoRange(true)

open
General (896)
7
2007-03-05
2004-09-21
No

Creating an XYPlot() with a XYBoxAndWhiskerRenderer
does not support AutoRange(true).

Discussion

  • David Gilbert

    David Gilbert - 2004-10-01

    Logged In: YES
    user_id=112975

    I'm not entirely sure what you mean by this. Could you post
    a small demo app illustrating the problem?

    Regards,

    Dave Gilbert
    JFreeChart Project Leader

     
  • David Gilbert

    David Gilbert - 2004-10-01
    • labels: --> General
    • priority: 5 --> 2
    • assigned_to: nobody --> mungady
     
  • Rudi Mayerhofer

    Rudi Mayerhofer - 2007-02-28

    Logged In: YES
    user_id=1731152
    Originator: NO

    hello,

    i just ran into this bug as well.
    XYBoxAndWhiskerRenderer does not do the AutoRanging correctly.

    This is because XYBoxAndWhiskerRenderer.findRangeBounds() does not
    honour the min/max outliner values from a BoxAndWhiskerXYDataSet.
    Instead it calls DatasetUtilities.findRangeBounds() which does the
    usual checks on some interfaces and as a last resort iterates over
    all Y Values to determine the range bounds.

    For XYBoxAndWhisker Charts this should iterate over all min/max
    outliner values instead of the y value to determine the correct
    range bounds.

    regards,

    rudi

    P.S.: A workaround for this is to extend the BoxAndWhiskerXYDataSet
    to implement IntervalXYDataSet (which is check by DatasetUtilities.findRangeBounds())
    with the following:

    public Number getEndX(int series, int item) {
    return getX(series, item);
    }

    public double getEndXValue\(int series, int item\) \{
        return getXValue\(series, item\);
    \}
    
    public Number getStartX\(int series, int item\) \{
        return getX\(series, item\);
    \}
    
    public double getStartXValue\(int series, int item\) \{
        return getXValue\(series, item\);
    \}
    
    public Number getStartY\(int series, int item\) \{
        return getMinOutlier\(series, item\);
    \}
    
    public double getStartYValue\(int series, int item\) \{
        return getStartY\(series, item\).doubleValue\(\);
    \}
    
    public Number getEndY\(int series, int item\) \{
        return getMaxOutlier\(series, item\);
    \}
    
    public double getEndYValue\(int series, int item\) \{
        return getEndY\(series, item\).doubleValue\(\);
    \}
    
     
  • David Gilbert

    David Gilbert - 2007-03-05
    • priority: 2 --> 7
     
  • David Gilbert

    David Gilbert - 2007-03-05

    Logged In: YES
    user_id=112975
    Originator: NO

    OK, now I understand. I'll take a look...

     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks