Я пытаюсь показать гистограмму длин списков в моих данных.Я решил использовать JFreeCharts для его визуализации, но я помещаю данные в инструмент, и создаваемая гистограмма не соответствует этим данным.
Сначала я попытался установить соответствующие метки для осей X.К сожалению, я смог установить только правильные начало (1) и конец (dataAray.length).Но даже с этим я чувствую, что это не правильный путь.Я ожидаю, что JFreeChart будет управлять им самостоятельно.
private JFreeChart getHistogramChart(String name, double[] dataArray) {
String plotTitle = name;
String xAxisLabel = "Length of transaction";
String yAxis = "Frequency";
PlotOrientation orientation = PlotOrientation.VERTICAL;
HistogramDataset histogramDataset = new HistogramDataset();
histogramDataset.setType(HistogramType.FREQUENCY);
histogramDataset.addSeries(name, dataArray, dataArray.length,1,dataArray.length);
boolean show = true;
boolean toolTips = false;
boolean urls = false;
JFreeChart chart = ChartFactory.createHistogram(plotTitle, xAxisLabel, yAxis,
histogramDataset, orientation, show, toolTips, urls);
chart.setBackgroundPaint(Color.white);
XYPlot plot = chart.getXYPlot();
plot.setForegroundAlpha(0.75f);
NumberAxis axis = (NumberAxis) plot.getDomainAxis();
axis.setAutoRangeIncludesZero(false);
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setNumberFormatOverride(NumberFormat.getIntegerInstance());
return chart;
}
У меня есть данные в двух вариантах:
В виде списка - {2 = 696, 3 = 229, 4 = 123,5 = 74, 6 = 42, 7 = 29, 8 = 8, 9 = 9, 10 = 9, 11 = 2, 12 = 3, 13 = 2, 15 = 1, 16 = 5, 17 = 1, 19 =1, 22 = 1, 23 = 1, 24 = 2, 27 = 1, 28 = 1, 29 = 1, 39 = 2, 48 = 1, 56 = 2, 57 = 1, 63 = 1, 93 = 1,95 = 1, 99 = 1, 146 = 1, 435 = 1}
А в качестве базовой отвечающей двойной матрицы - [0,0, 696,0, 229,0, 123,0, 74,0, 42,0, 29,0, 8,0, 9,0, 9,0,2,0, 3,0, 2,0, 0,0, 1,0, 5,0, 1,0, 0,0, 1,0, 0,0, 0,0, 1,0, 1,0, 2,0, 0,0, 0,0, 1,0, 1,0, 1,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0,0,0, 0,0, 0,0, 2,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 1,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 2,0, 1,0, 0,0, 0,0, 0,0,0,0, 0,0, 1,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0,0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 1,0, 0,0, 1,0, 0,0, 0,0, 0,0, 1,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0,0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0.0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 1,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,00.0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 1,0]
В результате ось Y заканчивается 425 вместо 700, что я ожидаю из-за значенияво втором бункере.