From 3211e2012d48c79fe06491e80c3f897e12e5c4ce Mon Sep 17 00:00:00 2001 From: Holger Friedrich Date: Mon, 19 May 2025 08:58:15 +0200 Subject: [PATCH] Tweak x-axis labels of charts (#4733) * Avoid overlapping of labels Signed-off-by: Holger Friedrich --- .../chart/defaultchartprovider/DefaultChartProvider.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bundles/org.openhab.core.ui/src/main/java/org/openhab/core/ui/internal/chart/defaultchartprovider/DefaultChartProvider.java b/bundles/org.openhab.core.ui/src/main/java/org/openhab/core/ui/internal/chart/defaultchartprovider/DefaultChartProvider.java index 8dfd77f830..281ffffbd7 100644 --- a/bundles/org.openhab.core.ui/src/main/java/org/openhab/core/ui/internal/chart/defaultchartprovider/DefaultChartProvider.java +++ b/bundles/org.openhab.core.ui/src/main/java/org/openhab/core/ui/internal/chart/defaultchartprovider/DefaultChartProvider.java @@ -206,6 +206,11 @@ public class DefaultChartProvider implements ChartProvider { } styler.setYAxisTickMarkSpacingHint(yAxisSpacing); styler.setYAxisLabelAlignment(TextAlignment.Right); + // avoid overlapping labels on x-axis; + // Font.getSize() is related to font height, but will also give an indication of the width; + // pattern is not the actual label, but also gives a rough estimation of the width of the label + int xAxisSpacing = Math.max(width / 15, chartTheme.getAxisTickLabelsFont(dpi).getSize() * pattern.length()); + styler.setXAxisTickMarkSpacingHint(xAxisSpacing); // chart styler.setChartBackgroundColor(chartTheme.getChartBackgroundColor()); styler.setChartFontColor(chartTheme.getChartFontColor());