Search in sources :

Example 1 with NumberAxis

use of javafx.scene.chart.NumberAxis in project Gargoyle by callakrsos.

the class PMDViolationbyBarChartComposite method createNode.

/* (non-Javadoc)
	 * @see com.kyj.fx.voeditor.visual.component.pmd.chart.PMDViolationChartVisualable#createNode()
	 */
@Override
public Node createNode() {
    xAxis = new CategoryAxis();
    xAxis.setAutoRanging(false);
    xAxis.setAnimated(false);
    yAxis = new NumberAxis();
    yAxis.setAnimated(false);
    yAxis.setPrefWidth(60d);
    yAxis.setAutoRanging(true);
    yAxis.setMaxWidth(60d);
    yAxis.setLabel("Violation Count");
    Series<String, Number> dataList = new Series<>(FXCollections.observableArrayList());
    dataList.setName("Priority");
    BarChart<String, Number> c = new BarChart<>(xAxis, yAxis);
    barChart.set(c);
    series = c.getData();
    series.add(0, dataList);
    this.dataList = dataList.getData();
    return c;
}
Also used : Series(javafx.scene.chart.XYChart.Series) NumberAxis(javafx.scene.chart.NumberAxis) CategoryAxis(javafx.scene.chart.CategoryAxis) BarChart(javafx.scene.chart.BarChart)

Example 2 with NumberAxis

use of javafx.scene.chart.NumberAxis in project Board-Instrumentation-Framework by intel.

the class BaseChartWidget method CreateAxisObjects.

protected void CreateAxisObjects() {
    _xAxis = new NumberAxis(0d, xAxisMaxCount - 1, xAxisMajorTick);
    _yAxis = new NumberAxis(yAxisMinValue, yAxisMaxValue, yAxisMajorTick);
    // Widget specifies interval, Java wants # of ticks, so convert
    int yTickCount = 0;
    if (yAxisMinorTick > 0) {
        yTickCount = (int) (yAxisMajorTick / yAxisMinorTick);
    }
    int xTickCount = 0;
    if (xAxisMinorTick > 0) {
        xTickCount = (int) (xAxisMajorTick / xAxisMinorTick);
    }
    ((NumberAxis) (_yAxis)).minorTickCountProperty().set(yTickCount);
    ((NumberAxis) (_xAxis)).minorTickCountProperty().set(xTickCount);
}
Also used : NumberAxis(javafx.scene.chart.NumberAxis)

Example 3 with NumberAxis

use of javafx.scene.chart.NumberAxis in project bisq-desktop by bisq-network.

the class CandleStickChart method layoutPlotChildren.

// -------------- METHODS ------------------------------------------------------------------------------------------
/**
 * Called to update and layout the content for the plot
 */
@Override
protected void layoutPlotChildren() {
    // we have nothing to layout if no data is present
    if (getData() == null) {
        return;
    }
    // update candle positions
    for (int seriesIndex = 0; seriesIndex < getData().size(); seriesIndex++) {
        XYChart.Series<Number, Number> series = getData().get(seriesIndex);
        Iterator<XYChart.Data<Number, Number>> iter = getDisplayedDataIterator(series);
        Path seriesPath = null;
        if (series.getNode() instanceof Path) {
            seriesPath = (Path) series.getNode();
            seriesPath.getElements().clear();
        }
        while (iter.hasNext()) {
            XYChart.Data<Number, Number> item = iter.next();
            double x = getXAxis().getDisplayPosition(getCurrentDisplayedXValue(item));
            double y = getYAxis().getDisplayPosition(getCurrentDisplayedYValue(item));
            Node itemNode = item.getNode();
            CandleData candleData = (CandleData) item.getExtraValue();
            if (itemNode instanceof Candle && candleData != null) {
                Candle candle = (Candle) itemNode;
                double close = getYAxis().getDisplayPosition(candleData.close);
                double high = getYAxis().getDisplayPosition(candleData.high);
                double low = getYAxis().getDisplayPosition(candleData.low);
                // calculate candle width
                double candleWidth = -1;
                if (getXAxis() instanceof NumberAxis) {
                    NumberAxis xa = (NumberAxis) getXAxis();
                    // use 90% width between ticks
                    candleWidth = xa.getDisplayPosition(xa.getTickUnit()) * 0.90;
                }
                // update candle
                candle.update(close - y, high - y, low - y, candleWidth);
                candle.updateTooltip(candleData);
                // position the candle
                candle.setLayoutX(x);
                candle.setLayoutY(y);
            }
            if (seriesPath != null && candleData != null) {
                final double displayPosition = getYAxis().getDisplayPosition(candleData.average);
                if (seriesPath.getElements().isEmpty())
                    seriesPath.getElements().add(new MoveTo(x, displayPosition));
                else
                    seriesPath.getElements().add(new LineTo(x, displayPosition));
            }
        }
    }
}
Also used : Path(javafx.scene.shape.Path) NumberAxis(javafx.scene.chart.NumberAxis) LineTo(javafx.scene.shape.LineTo) CandleData(bisq.desktop.main.market.trades.charts.CandleData) Node(javafx.scene.Node) CandleData(bisq.desktop.main.market.trades.charts.CandleData) MoveTo(javafx.scene.shape.MoveTo) XYChart(javafx.scene.chart.XYChart)

Example 4 with NumberAxis

use of javafx.scene.chart.NumberAxis in project tilesfx by HanSolo.

the class Tile method init.

// ******************** Initialization ************************************
private void init() {
    _minValue = 0;
    _maxValue = 100;
    value = new DoublePropertyBase(_minValue) {

        private void update() {
            final double VALUE = get();
            withinSpeedLimit = !(Instant.now().minusMillis(getAnimationDuration()).isBefore(lastCall));
            lastCall = Instant.now();
            if (isAnimated() && withinSpeedLimit) {
                long animationDuration = isReturnToZero() ? (long) (0.2 * getAnimationDuration()) : getAnimationDuration();
                timeline.stop();
                final KeyValue KEY_VALUE = new KeyValue(currentValue, VALUE, Interpolator.SPLINE(0.5, 0.4, 0.4, 1.0));
                final KeyFrame KEY_FRAME = new KeyFrame(Duration.millis(animationDuration), KEY_VALUE);
                timeline.getKeyFrames().setAll(KEY_FRAME);
                timeline.play();
            } else {
                currentValue.set(VALUE);
                fireTileEvent(FINISHED_EVENT);
            }
            if (isAveragingEnabled()) {
                movingAverage.addData(new TimeData(VALUE));
            }
        }

        @Override
        protected void invalidated() {
            update();
        }

        @Override
        public void set(final double VALUE) {
            // only get invalid if the the new value is different from the old value
            if (Helper.equals(VALUE, getFormerValue())) {
                update();
            }
            super.set(VALUE);
            fireTileEvent(VALUE_EVENT);
        }

        @Override
        public Object getBean() {
            return Tile.this;
        }

        @Override
        public String getName() {
            return "value";
        }
    };
    oldValue = new SimpleDoubleProperty(Tile.this, "oldValue", value.get());
    currentValue = new DoublePropertyBase(value.get()) {

        @Override
        protected void invalidated() {
            final double VALUE = get();
            if (isCheckThreshold()) {
                double thrshld = getThreshold();
                if (formerValue.get() < thrshld && VALUE > thrshld) {
                    fireTileEvent(EXCEEDED_EVENT);
                } else if (formerValue.get() > thrshld && VALUE < thrshld) {
                    fireTileEvent(UNDERRUN_EVENT);
                }
            }
            if (VALUE < getMinMeasuredValue()) {
                setMinMeasuredValue(VALUE);
            } else if (VALUE > getMaxMeasuredValue()) {
                setMaxMeasuredValue(VALUE);
            }
            formerValue.set(VALUE);
        }

        @Override
        public void set(final double VALUE) {
            super.set(VALUE);
        }

        @Override
        public Object getBean() {
            return Tile.this;
        }

        @Override
        public String getName() {
            return "currentValue";
        }
    };
    formerValue = new SimpleDoubleProperty(Tile.this, "formerValue", value.get());
    _range = _maxValue - _minValue;
    _threshold = _maxValue;
    _referenceValue = _minValue;
    _autoReferenceValue = true;
    currentTime = new LongPropertyBase(getTime().toEpochSecond()) {

        @Override
        public Object getBean() {
            return Tile.this;
        }

        @Override
        public String getName() {
            return "currentTime";
        }
    };
    _title = "";
    _titleAlignment = TextAlignment.LEFT;
    _description = "";
    _descriptionAlignment = Pos.TOP_RIGHT;
    _unit = "";
    oldFlipText = "";
    _flipText = "";
    _active = false;
    _text = "";
    _textAlignment = TextAlignment.LEFT;
    _averagingEnabled = false;
    _averagingPeriod = 10;
    _duration = LocalTime.of(1, 0);
    _currentLocation = new Location(0, 0);
    _trackColor = TileColor.BLUE;
    _mapProvider = MapProvider.BW;
    flipTimeInMS = 500;
    _textSize = TextSize.NORMAL;
    _roundedCorners = true;
    _startFromZero = false;
    _returnToZero = false;
    _minMeasuredValue = _maxValue;
    _maxMeasuredValue = _minValue;
    _minMeasuredValueVisible = false;
    _maxMeasuredValueVisible = false;
    _oldValueVisible = false;
    _valueVisible = true;
    _foregroundColor = FOREGROUND;
    _backgroundColor = BACKGROUND;
    _borderColor = Color.TRANSPARENT;
    _borderWidth = 1;
    _knobColor = FOREGROUND;
    _activeColor = BLUE;
    _animated = false;
    animationDuration = 800;
    _startAngle = 0;
    _angleRange = 180;
    _angleStep = _angleRange / _range;
    _autoScale = true;
    _shadowsEnabled = false;
    _locale = Locale.US;
    _numberFormat = NumberFormat.getInstance(_locale);
    _decimals = 1;
    _tickLabelDecimals = 1;
    _needleColor = FOREGROUND;
    _hourColor = FOREGROUND;
    _minuteColor = FOREGROUND;
    _secondColor = FOREGROUND;
    _barColor = BLUE;
    _barBackgroundColor = BACKGROUND;
    _titleColor = FOREGROUND;
    _descriptionColor = FOREGROUND;
    _unitColor = FOREGROUND;
    _valueColor = FOREGROUND;
    _textColor = FOREGROUND;
    _dateColor = FOREGROUND;
    _hourTickMarkColor = FOREGROUND;
    _minuteTickMarkColor = FOREGROUND;
    _alarmColor = FOREGROUND;
    _thresholdColor = RED;
    _checkSectionsForValue = false;
    _checkThreshold = false;
    _innerShadowEnabled = false;
    _thresholdVisible = false;
    _averageVisible = false;
    _sectionsVisible = false;
    _sectionsAlwaysVisible = false;
    _sectionTextVisible = false;
    _sectionIconsVisible = false;
    _highlightSections = false;
    _orientation = Orientation.HORIZONTAL;
    _keepAspect = true;
    _customFontEnabled = false;
    _customFont = Fonts.latoRegular(12);
    _alert = false;
    _alertMessage = "";
    _smoothing = false;
    _secondsVisible = false;
    _discreteSeconds = true;
    _discreteMinutes = true;
    _discreteHours = false;
    _textVisible = true;
    _dateVisible = false;
    _running = false;
    _hourTickMarksVisible = true;
    _minuteTickMarksVisible = true;
    _alarmsEnabled = false;
    _alarmsVisible = false;
    _strokeWithGradient = false;
    _fillWithGradient = false;
    tooltip = new Tooltip(null);
    _xAxis = new CategoryAxis();
    _yAxis = new NumberAxis();
    _radarChartMode = Mode.POLYGON;
    _chartGridColor = Tile.GRAY;
    _sortedData = true;
    _dataPointsVisible = false;
    _snapToTicks = false;
    _minorTickCount = 0;
    _majorTickUnit = 1;
    _matrixSize = new int[] { 30, 25 };
    _chartType = ChartType.LINE;
    _tooltipTimeout = 2000;
    _notificationBackgroundColor = Tile.YELLOW;
    _notificationForegroundColor = Tile.BACKGROUND;
    updateInterval = LONG_INTERVAL;
    increment = 1;
    originalMinValue = -Double.MAX_VALUE;
    originalMaxValue = Double.MAX_VALUE;
    originalThreshold = Double.MAX_VALUE;
    lastCall = Instant.now();
    timeline = new Timeline();
    timeline.setOnFinished(e -> {
        if (isReturnToZero() && !Helper.equals(currentValue.get(), 0.0)) {
            final KeyValue KEY_VALUE2 = new KeyValue(value, 0, Interpolator.SPLINE(0.5, 0.4, 0.4, 1.0));
            final KeyFrame KEY_FRAME2 = new KeyFrame(Duration.millis((long) (0.8 * getAnimationDuration())), KEY_VALUE2);
            timeline.getKeyFrames().setAll(KEY_FRAME2);
            timeline.play();
        }
        fireTileEvent(FINISHED_EVENT);
    });
}
Also used : KeyValue(javafx.animation.KeyValue) NumberAxis(javafx.scene.chart.NumberAxis) Tooltip(javafx.scene.control.Tooltip) Timeline(javafx.animation.Timeline) CategoryAxis(javafx.scene.chart.CategoryAxis) TimeData(eu.hansolo.tilesfx.tools.TimeData) KeyFrame(javafx.animation.KeyFrame) Location(eu.hansolo.tilesfx.tools.Location)

Example 5 with NumberAxis

use of javafx.scene.chart.NumberAxis in project jvarkit by lindenb.

the class VariantDepthChartFactory method build.

@Override
public Chart build() {
    final CategoryAxis xAxis = new CategoryAxis();
    xAxis.setLabel("DP");
    final NumberAxis yAxis = new NumberAxis();
    yAxis.setLabel("Count");
    final XYChart.Series<String, Number> serie = new XYChart.Series<String, Number>();
    serie.setName(xAxis.getLabel());
    for (Integer dp : new TreeSet<>(this.afindexcount.keySet())) {
        serie.getData().add(new XYChart.Data<String, Number>(String.valueOf(dp), this.afindexcount.count(dp)));
    }
    final BarChart<String, Number> sbc = new BarChart<String, Number>(xAxis, yAxis);
    sbc.setTitle(this.getName());
    sbc.getData().add(serie);
    sbc.setCategoryGap(0.2);
    sbc.setLegendVisible(false);
    return sbc;
}
Also used : NumberAxis(javafx.scene.chart.NumberAxis) CategoryAxis(javafx.scene.chart.CategoryAxis) TreeSet(java.util.TreeSet) BarChart(javafx.scene.chart.BarChart) XYChart(javafx.scene.chart.XYChart)

Aggregations

NumberAxis (javafx.scene.chart.NumberAxis)32 XYChart (javafx.scene.chart.XYChart)25 CategoryAxis (javafx.scene.chart.CategoryAxis)15 StackedBarChart (javafx.scene.chart.StackedBarChart)7 BarChart (javafx.scene.chart.BarChart)6 LineChart (javafx.scene.chart.LineChart)6 ArrayList (java.util.ArrayList)5 TreeSet (java.util.TreeSet)4 Node (javafx.scene.Node)4 Path (javafx.scene.shape.Path)3 CandleData (bisq.desktop.main.market.trades.charts.CandleData)2 PedFile (com.github.lindenb.jvarkit.tools.vcfviewgui.PedFile)2 CandleData (io.bitsquare.gui.main.market.trades.charts.CandleData)2 Insets (javafx.geometry.Insets)2 Scene (javafx.scene.Scene)2 StackPane (javafx.scene.layout.StackPane)2 StringConverter (javafx.util.StringConverter)2 CandleStickChart (bisq.desktop.main.market.trades.charts.price.CandleStickChart)1 VolumeChart (bisq.desktop.main.market.trades.charts.volume.VolumeChart)1 GraphDataBean (com.canoo.dp.impl.platform.projector.graph.GraphDataBean)1