Ширина панели в Jfreechart

Существует ли способ скорректировать ширину панелей в Столбиковой диаграмме?

Я составляю свою таблицу со следующим кодом.

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?
                );  
17
задан niton 15 April 2015 в 20:24
поделиться

4 ответа

Непосредственно задать ширину баров нельзя, но есть несколько атрибутов, которые могут быть изменены, влияющих на ширину. Вам следует обратить внимание на атрибуты lowerMargin, upperMargin и categoryMargin , определяемые атрибутом CategoryAxis или атрибутом itemMargin в BarRenderer. Например:

    BarRenderer renderer = (BarRenderer) chart.getCategoryPlot().getRenderer();
    renderer.setItemMargin(.1);

Двойник, указанный в setItemMargin(double percent) - это процент от общей длины оси категории, который будет использоваться для расстояния между барами внутри одной и той же категории (по умолчанию .2 или 20%). Чем меньше это значение, тем больше будет баров

.
8
ответ дан 30 November 2019 в 11:32
поделиться

По словам Дэйва Гилберта (Руководитель проекта JFreeChart)

ширина баров автоматически рассчитанный и будет зависеть от ширина диаграммы или графика и количество элементы в вашем наборе данных.

См. обсуждение здесь .

.
5
ответ дан 30 November 2019 в 11:32
поделиться

Можно также установить максимальную ширину полосы. Это полезно, если у вас широкий график, но иногда есть только одна или две точки данных, и вы не хотите, чтобы один большой жирный бар занимал всю площадь.

CategoryPlot categoryPlot = chart.getCategoryPlot();
BarRenderer br = (BarRenderer) categoryPlot.getRenderer();
br.setMaximumBarWidth(.35); // set maximum width to 35% of chart
21
ответ дан 30 November 2019 в 11:32
поделиться

Не получив результатов с использованием положительных полей и нуля, я попытался использовать отрицательные числа для itemMargin , чтобы посмотреть, что произойдет. Решетки стали толще. Однако я не знаю, рекомендуется ли это, поскольку вы получите перекрытие, если не будет достаточно места.

BarRenderer renderer = (BarRenderer) chart.getCategoryPlot().getRenderer();
renderer.setItemMargin(-2);
5
ответ дан 30 November 2019 в 11:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: