Комбинированные графики с FastScatterPlot и LineChart @ JFreeChart с большими данными (6,8 миллиона записей ~ 80 МБ) - PullRequest
0 голосов
/ 09 июня 2011

Мне нравится отображать FastScatterPlot в сочетании с LinePlot. Можно ли как-то объединить эти графики в комбинированный сюжет? К сожалению, это не так в отношении Руководства для разработчиков ?! По крайней мере, нет примера. Кажется, это возможно только с XYDataset, но вместо FastScatterPlot, который использует двумерный массив для хранения данных, XYDataset должен быть заполнен методом add (), например:

DefaultXYDataset dataset = new DefaultXYDataset();    
XYSeries dataSeries = new XYSeries("series 1");
dataSeries.add(xValue, yValue); //populate data: 6.8 million entries!
dataset.addSeries(new String(), dataset )
JFreeChart chart = ChartFactory.createScatterPlot("normaler scatterplot test", "X", "Y", dataset, PlotOrientation.HORIZONTAL, true,false, false);
ChartPanel chartPanel = new ChartPanel(chart, true);
getContentPane.add(chartPanel);

, что замедляет и в конечном итоге приводит к переполнению стека (размер кучи уже составляет 512 МБ)! Поэтому я использую FastScatterPlot, который успешно отображает график. Но, как уже упоминалось, я не знаю, как сочетать это с, например, Линейная диаграмма. Вот сокращенный код до сих пор:

double[][] data = new double[2][6800000]; //6.8 million entries!!!! static data!
//populate data ...
FastScatterPlot plot = new FastScatterPlot(data, new NumberAxis("X"), new NumberAxis("Y"));
JFreeChart chart = new JFreeChart("Fast Scatter Plot", plot);
ChartPanel chartPanel = new ChartPanel(chart, true);
getContentPane.add(chartPanel);
...