Исправить ширину диаграммы гистограммы и расстояние между барами в jfreechart

StackOverflow https://stackoverflow.com/questions/2808093

  •  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;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top