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 ) );
public static void setupXAxis(NumberAxis numberAxis, ObservableList<XYChart.Series<Number, Number>> seriesList) { long min = Long.MAX_VALUE; long max = 0; for (XYChart.Series<Number, ?> series : seriesList) { for (Data<Number, ?> data : series.getData()) { min = Math.min(data.getXValue().longValue(), min); max = Math.max(data.getXValue().longValue(), max); } } setupXAxis(numberAxis, min, max); }
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); }
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())));
DateTime startValue = getCurrentDisplayedXValue(item); double xStart = getXAxis().getDisplayPosition(startValue); double yStart = getYAxis().getDisplayPosition(item.getYValue()); CalendarNode node = item.getYValue(); .getExtraValue(); DateTime endVale = barExtras.getEndDate(); double xWidth = getXAxis().getDisplayPosition(endVale) Node itemNode = item.getNode(); if (itemNode instanceof Bar) { Bar bar = (Bar) itemNode; Node itemNode = item.getNode(); if (itemNode instanceof Bar) { Bar bar = (Bar) itemNode;
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));
for (Data<DateTime, CalendarNode> data : series.getData()) { CalendarExtras extras = (CalendarExtras) data.getExtraValue(); if (data.getXValue().isBefore(minDate)) { minDate = data.getXValue(); if (yData != null && rootNode.equals(data.getYValue().getParent())) { //I want only items of depth 1 to be categories yData.add(data.getYValue());
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); }
@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()); }
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)); }); }
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; } }
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); } }
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())); } } }
private void updateChart(Number value, Date date, XYChart.Series<Number, Number> series) { series.getData().add(new XYChart.Data<Number, Number>(date.getTime(), value)); }
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; } }