Существует ли способ скорректировать ширину панелей в Столбиковой диаграмме?
Я составляю свою таблицу со следующим кодом.
final JFreeChart chart = ChartFactory.createBarChart("Report", // chart title
"Date", // domain axis label
"Number", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips?
false // URLs?
);
Непосредственно задать ширину баров нельзя, но есть несколько атрибутов, которые могут быть изменены, влияющих на ширину. Вам следует обратить внимание на атрибуты lowerMargin, upperMargin и categoryMargin , определяемые атрибутом CategoryAxis или атрибутом itemMargin в BarRenderer. Например:
BarRenderer renderer = (BarRenderer) chart.getCategoryPlot().getRenderer();
renderer.setItemMargin(.1);
Двойник, указанный в setItemMargin(double percent)
- это процент от общей длины оси категории, который будет использоваться для расстояния между барами внутри одной и той же категории (по умолчанию .2 или 20%). Чем меньше это значение, тем больше будет баров
По словам Дэйва Гилберта (Руководитель проекта JFreeChart)
ширина баров автоматически рассчитанный и будет зависеть от ширина диаграммы или графика и количество элементы в вашем наборе данных.
См. обсуждение здесь .
.Можно также установить максимальную ширину полосы. Это полезно, если у вас широкий график, но иногда есть только одна или две точки данных, и вы не хотите, чтобы один большой жирный бар занимал всю площадь.
CategoryPlot categoryPlot = chart.getCategoryPlot();
BarRenderer br = (BarRenderer) categoryPlot.getRenderer();
br.setMaximumBarWidth(.35); // set maximum width to 35% of chart
Не получив результатов с использованием положительных полей и нуля, я попытался использовать отрицательные числа для itemMargin
, чтобы посмотреть, что произойдет. Решетки стали толще. Однако я не знаю, рекомендуется ли это, поскольку вы получите перекрытие, если не будет достаточно места.
BarRenderer renderer = (BarRenderer) chart.getCategoryPlot().getRenderer();
renderer.setItemMargin(-2);