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());