private void updateChart(Number value, Date date, XYChart.Series<Number, Number> series) { series.getData().add(new XYChart.Data<Number, Number>(date.getTime(), value)); }
static Node createScatterChart() { final Random RANDOM = new Random(29782198273l); NumberAxis xAxis = new NumberAxis("X-Axis", 0, 8, 1); NumberAxis yAxis = new NumberAxis("Y-Axis", -5, 5, 1); ObservableList<XYChart.Series> data = FXCollections.observableArrayList(); for (int s=0; s<8; s++) { ObservableList<ScatterChart.Data> seriesData = FXCollections.<ScatterChart.Data>observableArrayList(); for (int d=0; d<(8*(RANDOM.nextDouble()*10)); d++) { seriesData.add(new XYChart.Data(8*RANDOM.nextDouble(), -5+(10*RANDOM.nextDouble()))); } data.add(new ScatterChart.Series("Product "+(s+1),seriesData)); } return new ScatterChart(xAxis, yAxis, data); } }
@Override public void showFilteredResult(List<WorkflowStateSummary> filteredlist, EngineLoadFilterModel usedFilter) { WorkflowStateSummary copperLoadInfo = filteredlist.get(0); Date date = new Date(); // new SimpleDateFormat("HH:mm:ss").format(new Date()); for (Entry<WorkflowInstanceState, Integer> entry : copperLoadInfo.getNumberOfWorkflowInstancesWithState().entrySet()) { Series<Number, Number> axis = stateToAxis.get(entry.getKey()); ObservableList<Data<Number, Number>> data = axis.getData(); data.add(new XYChart.Data<Number, Number>(date.getTime(), entry.getValue())); if (data.size() > MAX_DATA_POINTS) { data.remove(0); } if (usedFilter.stateFilters.get(entry.getKey()).getValue()) { if (!areaChart.getData().contains(axis)) { areaChart.getData().add(axis); } } else { areaChart.getData().remove(axis); } } ComponentUtil.setupXAxis((NumberAxis) areaChart.getXAxis(), areaChart.getData()); }
for ( int i = (int) this.xAxis.getLowerBound(); i < this.xAxis.getUpperBound(); i++ ) { if ( this.data.size() > i ) { fullTimeData.add( new XYChart.Data<>( i, this.tickNanos ) ); actualTimeData.add( new XYChart.Data<>( i, this.data.get( i ) ) ); averageTimeData.add( new XYChart.Data<>( x, average ) ); averageTimeData.add( new XYChart.Data<>( x, average ) );
for(int y=0; y<years.length; y++) { if (horizontal) { sd.add(new BarChart.Data(negative+(2000*RANDOM.nextDouble()), years[y])); } else { sd.add(new BarChart.Data(years[y], negative+(2000*RANDOM.nextDouble())));
series1.getData().add(new XYChart.Data(austria, 25601.34)); series1.getData().add(new XYChart.Data(brazil, 20148.82)); series1.getData().add(new XYChart.Data(france, 10000)); series1.getData().add(new XYChart.Data(italy, 35407.15)); series1.getData().add(new XYChart.Data(usa, 12000)); series2.getData().add(new XYChart.Data(austria, 57401.85)); series2.getData().add(new XYChart.Data(brazil, 41941.19)); series2.getData().add(new XYChart.Data(france, 45263.37)); series2.getData().add(new XYChart.Data(italy, 117320.16)); series2.getData().add(new XYChart.Data(usa, 14845.27)); series3.getData().add(new XYChart.Data(austria, 45000.65)); series3.getData().add(new XYChart.Data(brazil, 44835.76)); series3.getData().add(new XYChart.Data(france, 18722.18)); series3.getData().add(new XYChart.Data(italy, 17557.31)); series3.getData().add(new XYChart.Data(usa, 92633.68));
ObservableList<AreaChart.Series> areaChartData = FXCollections.observableArrayList( new AreaChart.Series("Series 1",FXCollections.observableArrayList( new AreaChart.Data(0,4), new AreaChart.Data(2,5), new AreaChart.Data(4,4), new AreaChart.Data(6,2), new AreaChart.Data(8,6), new AreaChart.Data(10,8) )), new AreaChart.Series("Series 2", FXCollections.observableArrayList( new AreaChart.Data(0,8), new AreaChart.Data(2,2), new AreaChart.Data(4,9), new AreaChart.Data(6,7), new AreaChart.Data(8,5), new AreaChart.Data(10,7) )), new AreaChart.Series("Series 3", FXCollections.observableArrayList( new AreaChart.Data(0,2), new AreaChart.Data(2,5), new AreaChart.Data(4,8), new AreaChart.Data(6,6), new AreaChart.Data(8,9), new AreaChart.Data(10,7) )) );
public static BarChart<String, Number> chart( String title, StringColumn x, NumberColumn y) { final CategoryAxis xAxis = new CategoryAxis(); final NumberAxis yAxis = new NumberAxis(); xAxis.setLabel(x.name()); yAxis.setLabel(y.name()); Table t = Table.create("", x, y); t = t.sortDescendingOn(y.name()); final BarChart<String, Number> bar = new BarChart<>(xAxis, yAxis); bar.setTitle(title); List<XYChart.Data<String, Number>> d2 = new ArrayList<>(x.size()); for (int i = 0; i < x.size(); i++) { d2.add(new XYChart.Data<>(t.stringColumn(0).get(i), t.nCol(1).get(i))); } XYChart.Series<String, Number> series1 = new XYChart.Series<>(FXCollections.observableList(d2)); series1.setName(y.name()); bar.setLegendVisible(false); bar.setCategoryGap(0.0); bar.setBarGap(0.1); bar.setBackground(Background.EMPTY); bar.setVerticalGridLinesVisible(false); bar.getData().add(series1); return bar; }
@Override public Map<TimeSeriesInfo<Double>, TimeSeriesProcessor<Double>> fetchData(String path, Instant begin, Instant end, List<TimeSeriesInfo<Double>> seriesInfo, boolean bypassCache) throws DataAdapterException { if (this.isClosed()) { throw new IllegalStateException("An attempt was made to fetch data from a closed adapter"); } Path dsPath = Path.of(path); try { FetchRequest request = rrdDbMap.get(dsPath.getParent()).createFetchRequest(ConsolFun.valueOf(dsPath.getFileName().toString()), begin.getEpochSecond(), end.getEpochSecond()); request.setFilter(seriesInfo.stream().map(s -> s.getBinding().getLabel()).toArray(String[]::new)); FetchData data = request.fetchData(); Map<TimeSeriesInfo<Double>, TimeSeriesProcessor<Double>> series = new HashMap<>(); for (int i = 0; i < data.getRowCount(); i++) { ZonedDateTime timeStamp = Instant.ofEpochSecond(data.getTimestamps()[i]).atZone(getTimeZoneId()); for (TimeSeriesInfo<Double> info : seriesInfo) { Double val = data.getValues(info.getBinding().getLabel())[i]; XYChart.Data<ZonedDateTime, Double> point = new XYChart.Data<>(timeStamp, val.isNaN() ? 0 : val); TimeSeriesProcessor<Double> seriesProcessor = series.computeIfAbsent(info, k -> new DoubleTimeSeriesProcessor()); seriesProcessor.addSample(point); } } logger.trace(() -> String.format("Built %d series with %d samples each (%d total samples)", seriesInfo.size(), data.getRowCount(), seriesInfo.size() * data.getRowCount())); return series; } catch (IOException e) { throw new FetchingDataFromAdapterException("IO Error while retrieving data from rrd db", e); } }
static Node createLineChart() { NumberAxis xAxis = new NumberAxis("Values for X-Axis", 0, 3, 1); NumberAxis yAxis = new NumberAxis("Values for Y-Axis", 0, 3, 1); ObservableList<XYChart.Series<Double,Double>> lineChartData = FXCollections.observableArrayList( new LineChart.Series<Double,Double>("Series 1", FXCollections.observableArrayList( new XYChart.Data<Double,Double>(0.0, 1.0), new XYChart.Data<Double,Double>(1.2, 1.4), new XYChart.Data<Double,Double>(2.2, 1.9), new XYChart.Data<Double,Double>(2.7, 2.3), new XYChart.Data<Double,Double>(2.9, 0.5) )), new LineChart.Series<Double,Double>("Series 2", FXCollections.observableArrayList( new XYChart.Data<Double,Double>(0.0, 1.6), new XYChart.Data<Double,Double>(0.8, 0.4), new XYChart.Data<Double,Double>(1.4, 2.9), new XYChart.Data<Double,Double>(2.1, 1.3), new XYChart.Data<Double,Double>(2.6, 0.9) )) ); return new LineChart(xAxis, yAxis, lineChartData); }
static Node createBubbleChart(boolean useRightTopAxis) { final Random RANDOM = new Random(29782198273l); NumberAxis xAxis = new NumberAxis(); xAxis.setLabel("Product"); NumberAxis yAxis = new NumberAxis(); yAxis.setLabel("Number Bought/Sold"); if (useRightTopAxis) { xAxis.setSide(Side.TOP); yAxis.setSide(Side.RIGHT); } ObservableList<BubbleChart.Series> bubbleChartData = FXCollections.observableArrayList(); for (int s=0; s<8; s++) { ObservableList<BubbleChart.Data> seriesData = FXCollections.<BubbleChart.Data>observableArrayList(); for (int d=0; d<(8*(RANDOM.nextDouble()*10)); d++) { seriesData.add(new XYChart.Data(100*RANDOM.nextDouble(), -50+(150*RANDOM.nextDouble()), 5+(10*RANDOM.nextDouble()) )); } bubbleChartData.add(new ScatterChart.Series("Product "+(s+1),seriesData)); } return new BubbleChart(xAxis, yAxis, bubbleChartData); }
@Override public void notifyOnFrameChange(final int frame, final Vector2D derivative, final Vector2D path) { Platform.runLater(() -> { // When it's the first frame it reset the canvas. if (frame == 0) { this.clearCanvasAndChart(); } // fill the chart with data this.getxSeries().getData().add(new XYChart.Data<Number, Number>(frame, (int) derivative.getX())); this.getySeries().getData().add(new XYChart.Data<Number, Number>(frame, (int) derivative.getY())); // Draw oval on canvas this.getLiveContext().fillOval(-path.getX() + this.getLiveCanvas().getWidth() / 2, path.getY() + this.getLiveCanvas().getHeight() / 2, 10, 10); // Move the progress bar this.progressBar.setProgress(frame / (this.gestureLength.getFrameNumber() + 0.0)); }); }
private void updateChart(XYChart<Number, Number> chart, Map<String, List<TimeValuePair<Double>>> seriesTitleToData) { chart.getData().clear(); for (Entry<String, List<TimeValuePair<Double>>> seriesData : seriesTitleToData.entrySet()) { final Series<Number, Number> series = new Series<Number, Number>(); series.setName(seriesData.getKey()); for (TimeValuePair<Double> timeValuePair : seriesData.getValue()) { final Data<Number, Number> data = new Data<Number, Number>(timeValuePair.date.getTime(), timeValuePair.value); data.setNode(new HoveredNode(timeValuePair)); series.getData().add(data); } chart.getData().add(series); } ComponentUtil.setupXAxis((NumberAxis) chart.getXAxis(), chart.getData()); // measurePointsChart.getYAxis().setAutoRanging(false); // ((NumberAxis)measurePointsChart.getYAxis()).setLowerBound(0); // ((NumberAxis)measurePointsChart.getYAxis()).setUpperBound(ymax*1.10); }
public static BarChart<String, Number> chart(String title, NumberColumn categoryColumn, NumberColumn numberColumn) { Table t = Table.create("", categoryColumn, numberColumn); t = t.sortDescendingOn(numberColumn.name()); final CategoryAxis categoryAxis = getCategoryAxis(t.stringColumn(0)); final NumberAxis numberAxis = getNumberAxis(t.numberColumn(1)); final BarChart<String, Number> barChart = getBarChart(title, categoryAxis, numberAxis); List<XYChart.Data<String, Number>> data = new ArrayList<>(categoryColumn.size()); for (int i = 0; i < categoryColumn.size(); i++) { data.add(new XYChart.Data<>(categoryColumn.getString(i), numberColumn.get(i))); } barChart.getData().add(getSeries(numberColumn, data)); return barChart; } }
public static BarChart<Number, String> chart(String title, StringColumn stringColumn, NumberColumn numberColumn) { final CategoryAxis categoryAxis = getCategoryAxis(stringColumn); final NumberAxis numberAxis = getNumberAxis(numberColumn); final BarChart<Number, String> bar = getNumberStringBarChart(title, numberAxis, categoryAxis); List<XYChart.Data<Number, String>> d2 = new ArrayList<>(numberColumn.size()); for (int i = 0; i < numberColumn.size(); i++) { d2.add(new XYChart.Data<>(numberColumn.get(i), stringColumn.get(i))); } XYChart.Series<Number, String> series1 = getNumberStringSeries(stringColumn, d2); bar.getData().add(series1); return bar; }
@Override public void showFilteredResult(List<MeasurePointData> filteredlist, EnginePoolFilterModel usedFilter) { clear(); for (MeasurePointData measurePointData : filteredlist) { ObservableList<Data<String, Number>> data = axis.getData(); if (measurePointData.getCount() != 0) { String text = measurePointData.getMeasurePointId(); if (text != null) { text = text.replace("org.copperengine.core.", ""); } data.add(new XYChart.Data<String, Number>(text, measurePointData.getElapsedTimeMicros() / measurePointData.getCount())); } } }
public static BarChart<String, Number> chart(String title, NumberColumn categoryColumn, NumberColumn numberColumn) { final CategoryAxis categoryAxis = getCategoryAxis(categoryColumn); final NumberAxis numberAxis = getNumberAxis(numberColumn); final BarChart<String, Number> barChart = getBarChart(title, categoryAxis, numberAxis); List<XYChart.Data<String, Number>> data = new ArrayList<>(categoryColumn.size()); for (int i = 0; i < categoryColumn.size(); i++) { data.add(new XYChart.Data<>(categoryColumn.getString(i), numberColumn.get(i))); } barChart.getData().add(getSeries(numberColumn, data)); return barChart; } }
public static BarChart<String, Number> chart(String title, StringColumn stringColumn, NumberColumn numberColumn) { final CategoryAxis categoryAxis = getCategoryAxis(stringColumn); final NumberAxis numberAxis = getNumberAxis(numberColumn); final BarChart<String, Number> barChart = getBarChart(title, categoryAxis, numberAxis); List<XYChart.Data<String, Number>> data = new ArrayList<>(stringColumn.size()); for (int i = 0; i < stringColumn.size(); i++) { data.add(new XYChart.Data<>(stringColumn.get(i), numberColumn.get(i))); } barChart.getData().add(getSeries(numberColumn, data)); return barChart; }
public void addNode(CalendarNode node, String title) { ModelInflater inflater = new ModelInflater(node); XYChart.Series<DateTime, CalendarNode> series = new XYChart.Series<>(); series.setName(title); DateTime[] dates = inflater.getDates(); CalendarExtras[] extras = inflater.getExtras(); List<CalendarNode> nodes = inflater.getNodes(); for (int i = 0; i < nodes.size(); i++) { series.getData().add(new XYChart.Data<>(dates[i], nodes.get(i), extras[i])); } getData().add(series); rootNode.addChild(node); }
public static BarChart<Number, String> chart(String title, NumberColumn categoryColumn, NumberColumn numberColumn) { final CategoryAxis categoryAxis = getCategoryAxis(categoryColumn); final NumberAxis numberAxis = getNumberAxis(numberColumn); final BarChart<Number, String> bar = getNumberStringBarChart(title, numberAxis, categoryAxis); List<XYChart.Data<Number, String>> d2 = new ArrayList<>(numberColumn.size()); for (int i = 0; i < numberColumn.size(); i++) { d2.add(new XYChart.Data<>(numberColumn.get(i), categoryColumn.getString(i))); } XYChart.Series<Number, String> series1 = getNumberStringSeries(categoryColumn, d2); bar.getData().add(series1); return bar; }