@@ -357,6 +357,7 @@ void PlotBuilder::calcAxises(const Data::DataTable &dataTable,
357357 for (auto &&[axis, needRanges, boundSize] :
358358 {std::tuple{mainAxis, mainRanges.empty (), mainBoundRect},
359359 {!mainAxis, subRanges.empty (), subBoundRect}}) {
360+ if (!needRanges) continue ;
360361
361362 for (auto &marker : plot->markers ) {
362363 auto &&markerSize = marker.getSizeBy (axis);
@@ -368,7 +369,7 @@ void PlotBuilder::calcAxises(const Data::DataTable &dataTable,
368369 {boundSize.rescale (markerSize.min , 0.0 ),
369370 boundSize.rescale (markerSize.max , 0.0 )});
370371 }
371- if (needRanges) stats.setIfRange (axis, boundSize);
372+ stats.setIfRange (axis, boundSize);
372373 }
373374
374375 for (auto &&[ch, ranges] :
@@ -595,17 +596,22 @@ PlotBuilder::addSeparation(const Buckets &buckets,
595596 onMax += res[i].containsValues .size ();
596597 }
597598
599+ if (plot->getOptions ()->coordSystem == CoordSystem::polar
600+ && axisIndex == AxisId::x)
601+ onMax += splitSpace;
602+
598603 for (auto &&bucket : buckets)
599604 for (auto &&[marker, idx] : bucket) {
600605 auto buc = res[idx.itemId ];
601606 auto markerSize = marker.getSizeBy (axisIndex);
602607
603608 marker.setSizeBy (axisIndex,
604- Base::Align{align,
605- buc.atRange - buc.atRange .min
606- + buc.containsValues .min }
609+ ( Base::Align{align,
610+ buc.atRange - buc.atRange .min
611+ + buc.containsValues .min }
607612 .getAligned (markerSize - markerSize.min )
608- + buc.atRange .min - buc.containsValues .min );
613+ + buc.atRange .min - buc.containsValues .min )
614+ / onMax);
609615 }
610616
611617 auto alignedRange = maxRange;
0 commit comments