@@ -27,6 +27,7 @@ export class BarData extends BarLineScatterCandleBubbleData<BarEntry, BarDataSet
27
27
* @param groupSpace the space between groups of bars in values (not pixels) e.g. 0.8f for bar width 1
28
28
* @param barSpace the space between individual bars in values (not pixels) e.g. 0.1 for bar width 1
29
29
* @param centered whether to group bar around x values or between (default is false)
30
+ * @param groupCondensed whether to condensed grouped bar (no space for "0" bars)
30
31
*/
31
32
public groupBars ( fromX , groupSpace , barSpace , centered = false , groupCondensed = false ) {
32
33
const setCount = this . mDataSets . length ;
@@ -41,6 +42,7 @@ export class BarData extends BarLineScatterCandleBubbleData<BarEntry, BarDataSet
41
42
const barWidthHalf = this . barWidth / 2 ;
42
43
43
44
const interval = this . getGroupWidth ( groupSpace , barSpace ) ;
45
+
44
46
if ( ! groupCondensed && centered ) {
45
47
fromX -= interval / 2 ;
46
48
}
@@ -50,6 +52,7 @@ export class BarData extends BarLineScatterCandleBubbleData<BarEntry, BarDataSet
50
52
fromX += groupSpaceWidthHalf ;
51
53
}
52
54
if ( groupCondensed ) {
55
+ // we need to get entries filtered removing "empty" y entries
53
56
const entries = this . mDataSets . reduce (
54
57
( acc , set ) => {
55
58
if ( i < set . entryCount ) {
@@ -109,9 +112,8 @@ export class BarData extends BarLineScatterCandleBubbleData<BarEntry, BarDataSet
109
112
const end = fromX ;
110
113
const innerInterval = end - start ;
111
114
const diff = interval - innerInterval ;
112
-
113
115
// correct rounding errors
114
- if ( diff > 0 || diff < 0 ) {
116
+ if ( diff !== 0 ) {
115
117
fromX += diff ;
116
118
}
117
119
}
@@ -127,6 +129,7 @@ export class BarData extends BarLineScatterCandleBubbleData<BarEntry, BarDataSet
127
129
* @return
128
130
*/
129
131
public getGroupWidth ( groupSpace , barSpace ) {
130
- return this . mDataSets . length * ( this . barWidth + barSpace ) + groupSpace ;
132
+ const dataSetCount = this . dataSetCount ;
133
+ return dataSetCount * this . barWidth + ( dataSetCount > 1 ? Math . ceil ( dataSetCount / 2 ) : 0 ) * barSpace + groupSpace ;
131
134
}
132
135
}
0 commit comments