Uploaded image for project: 'Pentaho Reporting and Pentaho Report Designer'
  1. Pentaho Reporting and Pentaho Report Designer
  2. PRD-5821

XY Line Chart Y-Tick-Interval Default Behavior for Small Data Ranges

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Severity: Urgent
    • Resolution: Fixed
    • Affects Version/s: 6.0.0 GA, 6.1.0 GA, 6.1.0.7 GA
    • Fix Version/s: 7.1.0 GA
    • Component/s: None
    • Labels:
    • Environment:
      XY Line Chart created in PRD. Not dependent on OS or browser used, default behavior of the XY Line Chart settings.
    • Story Points:
      0
    • Notice:
      When an issue is open, the "Fix Version/s" field conveys a target, not necessarily a commitment. When an issue is closed, the "Fix Version/s" field conveys the version that the issue was fixed in.
    • Sprint Team:
      Tatooine (Maint)
    • Steps to Reproduce:
      Hide

      1. Create an XY Line Chart in PRD accessing data with a small data range, such as 0-10.

      2. Leave the y-tick-interval value in the chart configuration at the default value of "0.0" to see duplications of the values displayed in the y-axis.

      3. Set the y-tick-interval to an explicit value such as "1.0" to see the duplicated values on the y-axis go away and work as would be more appropriate.

      Show
      1. Create an XY Line Chart in PRD accessing data with a small data range, such as 0-10. 2. Leave the y-tick-interval value in the chart configuration at the default value of "0.0" to see duplications of the values displayed in the y-axis. 3. Set the y-tick-interval to an explicit value such as "1.0" to see the duplicated values on the y-axis go away and work as would be more appropriate.

      Description

      Description of Default Behavior Issue

      When creating an XY Line Chart in PRD, the default behavior of how the Y-axis is displayed depends on the range of data values coming in from the data.

      To clarify, when editing the XY Line Chart settings in PRD, there is an option under the Y-Axis category titled "y-tick-interval". If no interval is explicitly selected by the user to be used (a 0.0 is left in that field), PRD determines on its own what intervals to set by using an appropriate value based on the data range.

      For data in which the minimum value is just greater than 0 and the maximum value is 553,173 for example, PRD uses an interval on the y-axis of 25,000. The chart begins at value -25,000 on the bottom, up to a max value of 575,000 at the top of the chart in increments of 25,000. This behavior is appropriate to the data.

      However, when the data ranges are very small, the default behavior seems to make up for the lack of values on the y-axis by duplicating values in a strange manner. For instance, when looking at a full page XY Line Chart with a minimum data value of 0 and a maximum data value of 8 and no explicit y-tick value selected, here are the results of what values are shown in the y-axis:

      0 is repeated twice
      1 is shown once
      2 is repeated three times
      3 is shown once
      4 is repeated three times
      5 is shown once
      6 is repeated three times
      7 is shown once
      8 is repeated twice

      In this example the chart view is elongated to show multiple y-axis values of a distinct number while showing others just once. The general repeat pattern is that a single value is repeated three times, followed by just a single listing for the next number in sequence.

      In another case where the minimum data value is 0 and the maximum data value is 2, a full page XY Line Chart display shows these results:

      -0 is displayed once
      0 is displayed 5 times
      1 is displayed 10 times
      2 is displayed 7 times

      If you set an explicit y-tick-interval value of "1.0" for these small data cases, the duplication does not occur. So 0, 1, and 2, (or 0-8 in the other example) all display just one time on the chart at appropriate distances along the y-axis. Similarly setting an explicit value such as 30,000 or 50,000 for the large data ranges also shows appropriate listings for the large data example shown above, though the default behavior of 25,000 in that case is sufficient. If you set an explicit value that is too low for the large data case, such as "1.0" for the range that goes up to 553,000, understandably the data lines on the chart still appear but there are no value listings at all on the y-axis because an interval of 1.0 is not reasonable.

      Impact of Issue to Example Customer Use Case

      A customer who is using multiple XY Line Charts in a single report for different combinations of data has some charts that show appropriate y-axis values and others that do not (duplications) based on the data ranges. Setting an explicit value for each and every report is not a good long-term solution for them as their data constantly changes. In some charts, the data values will be low in some months/years and a value of "1.0" would be appropriate, but those same charts for other months may require higher intervals to be selected.

      This would mean each time they run the report they would have to check their data to manually determine an appropriate explicit y-tick-interval value to use based on if the data contains a very low range of values or if it is a higher-value month/year.

      Attachments

      1. generic_sample_with_large_values.xls: Sample data file for testing which contain data fields such as "Service Contract Count" (small data range) and "Total Contract Count" (large data range) used in testing the scenario.

      2. generic_sample_all_small_values.xls: Sample data where the values for "Total Contract Count" have been made smaller for additional testing with a minimum value of 0 and maximum value of 8.

      3. Example XY Line Chart Settings with Default Y-Tick-Interval Set Generic Data: Shows how one of the sample test charts was configured for testing. Y-tick-interval has been left at the default 0, XY Line Chart is a TimeSeriesCollector chart using "Contract Execution Date" for the time column, "Service Contract Count" as the value column and "Company Name" as the series by field.

      4. generic_test_data_small_numbers.prpt: Sample report with a chart configured using default y-tick-interval with maximum data value of 8 showing duplicate listings (and screenshot for easy reference of results).

      5. generic_test_data_1_0_tick_value.prpt: Sample report with two XY Line Charts. One configured in the "Report Header" section with an explicit y-tick-interval of 1.0 for a small data range (0-2) and one configured in the "Report Footer" section using default y-tick-interval of 0 and showing a large data range for the y-axis (both of these being the desired default behavior of display, with screenshots to demonstrate).

        Attachments

          Activity

            People

            Assignee:
            upihin Uladzimir Pihin (Inactive)
            Reporter:
            sbaker Steve Baker (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: