Как установить маржу для ValueAxis с отключенным автоматическим расчетом? - PullRequest
1 голос
/ 17 октября 2019

Я использую JFreeChart для отображения диаграмм в PDF с помощью Apache PdfBox.

Моя проблема заключается в следующем: у меня есть точечная диаграмма (изображение прилагается), которая имеет фиксированную нижнюю и верхнюю границы, поэтому автоматический расчетэто не вариант. Диаграмма отображает синюю точку с результатом. Однако, если значение точки равно 0 или 2 (значения ребер), точка обрезается, поэтому в этом случае мне нужно установить поле. Я пробовал с xAxis.setUpperMargin, но безуспешно.

Это часть кода:

NumberAxis xAxis = (NumberAxis) xyPlot.getDomainAxis();
double tickSize = maxValue > 10 ? 1 : 0.5;
xAxis.setTickUnit(new NumberTickUnit(tickSize));
xAxis.setRange(1, maxValue);

Chart Image

1 Ответ

0 голосов
/ 18 октября 2019

Как вы заметили, « margin добавляется только в том случае, если диапазон осей рассчитывается автоматически - если вы устанавливаете диапазон осей вручную, поле игнорируется». Кроме того, вы можете добавить подходящее поле при ручной настройке диапазона. Начиная с этого примера , следующее изменение к adjustAxis() добавляет 10% запас к каждому концу каждой оси, что приводит к показанному результату.

axis.setRange(-1.1, 1.1);

scatter plot with margin

...