openoffice-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Regina Henschel <>
Subject Re: review requested: [Bug 122822] Correct viewing of XY-, Column- and Line-Charts limited to 10000 records + 1 Heading row : [Attachment 81359] Fix patch
Date Tue, 20 Aug 2013 15:06:08 GMT
Hi Clarence,

Clarence GUO schrieb:
> Hi~ Regina,
> Do you mean the change should at view side?


  But each chart type has it's
> own implementation of view.

And each chart has its own performance problems. Drawing an XY-chart 
with only points might work, but showing data point labels will fail. 
Drawing a line in 2D might be fine, but drawing the same line in 3D will 
fail. Drawing only points might work, but drawing a regression line or 
smoothed curve in addition might fail.

  So if we want to change at view side, we have
> to change code in each implementation. That code looks not very effective.
> My change doesn't change model because the data source range can be kept.

But is solves only Calc as data provider.

Changing the view would also not change data source range but only the 
amount of generated shapes.

Another problem is, that there must be something additional in Excel 
import, because using ods works with the same amount of data. Delete the 
chart in Excel, open the file in AOO and then make a new chart. It is 
slow, but works.

Solving it inside chart has the opportunity to bring the threshold to 
UI, as suggested in comment 23.

> It only picked some points from model to prepare viewing for drawing
> performance consideration.

But I'm not an expert here and you should wait, what our experienced 
developers think.

A nitpick: the step should not be fix but depend on the amount of data 
relative to a threshold.

Kind regards

> 2013/8/20 Regina Henschel <>
>> Hi,
>> I think, that it is the wrong place for a correction. A chart is a
>> document and the chart itself should take care, that it draws its data
>> series in a reasonable time.
>> Kind regards
>> Regina
>> schrieb:
>>   Clarence GUO <> has asked  for review:
>>> Bug 122822: Correct viewing of XY-, Column- and Line-Charts limited to
>>> 10000
>>> records + 1 Heading row
>>> Attachment 81359: Fix patch
>>> ------- Additional Comments from Clarence GUO <>
>>> The root cause of this defect is in fix of 121058, only some points were
>>> picked
>>> up in order to save loading time and memory for tens of thousands of data
>>> points. All data points were divided into many small groups and only
>>> picked min
>>> and max points from one group. The reason why only picked min and max
>>> points
>>> instead of using a regular distance is, for example, if there is a column
>>> or a
>>> line chart, most of data points are around max value 100 and min value
>>> 10, only
>>> if we pick max and min values from one group, the chart can keep it's
>>> original
>>> outline. But if we use a regular distance, we might only get some
>>> mid-value(for
>>> example 50) of the chart and will miss the chart outline.
>>> But the mechanism never consider scatter chart or bubble chart which have
>>> multiple data sequence in one series. For example, for scatter chart, one
>>> series has two sequence, x values and y values. A x value and a y value
>>> must be
>>> a pair. Then when pick x values, a min and a max values were picked. When
>>> pick
>>> y values, another min and max values were picked. However, the picked min
>>> and
>>> max x values probably are not in one pair of min and max y values. For
>>> example,
>>> index of min and max x values are 10 and 40. It should get No. 10 and No.
>>> 40
>>> values from y values, but it might get No. 30 and No. 35. So in this
>>> case, the
>>> chart data are totally corrupt. That is the root cause.
>>> My fix will roll back code of 121058 in ScChart2DataSequence::**
>>> getNumericalData
>>> and add new fix code in ScChart2DataSequence::**BuildDataCache(), then
>>> wrong axes
>>> data label issue mentioned by Regina Henschel can be fixed. And new code
>>> will
>>> use regular distance to pick up points then problem for scatter chart and
>>> other
>>> charts which have multiple sequences in one series can be fixed. If the
>>> distance is small enough, fore-mentioned chart outline issue is no
>>> problem. So
>>> I use 5 as regular distance.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message