Исправить ширину диаграммы гистограммы и расстояние между барами в jfreechart
-
25-09-2019 - |
Вопрос
У меня сложена гистограмма, в которой количество столбцов динамически, может измениться от 1 до столбцов. Я хочу интервал между диаграммами и шириной полосы, чтобы быть последовательным. Как я это исправить. Пожалуйста, предложите решения / идеи.
Решение
StackedBarRenderer
Усиливает некоторые усилия, чтобы сделать «расстояние между [барами] и шириной полосы, чтобы быть последовательными». Неясно, что вы хотите, чтобы это делало по-разному, как количество столбцов меняется. Соответствующая геометрия определяется родителем BarRenderer
в таких методах как calculateBarWidth()
, который можно переопределить по желанию. Также убедитесь, что в каждой серии есть значение для каждой категории.
Другие советы
В штабелированном гистограмме вы можете изменить интервал между стержнями
- Cateworkaxis.etslowermargin.
- Chateaxis.setmargin и
- Chateaxis.setuppermargin.
Код ниже
protected JFreeChart generateGraph() {
CategoryAxis categoryAxis = new CategoryAxis("Categories");
categoryAxis.setLowerMargin(.01);
categoryAxis.setCategoryMargin(.01);
categoryAxis.setUpperMargin(.01);
categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_90);
ValueAxis valueAxis = new NumberAxis("Values");
StackedBarRenderer renderer = new StackedBarRenderer();
renderer.setBarPainter(new StandardBarPainter());
renderer.setDrawBarOutline(false);
renderer.setShadowVisible(false);
renderer.setBaseItemLabelsVisible(true);
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
CategoryPlot plot = new CategoryPlot( _dataset,
categoryAxis,
valueAxis,
renderer);
plot.setOrientation(PlotOrientation.VERTICAL);
JFreeChart chart = new JFreeChart( "Title",
JFreeChart.DEFAULT_TITLE_FONT,
plot,
true);
//ChartFactory.getChartTheme().apply(_chart);
return chart;
}