Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在散点图的X、Y轴中间添加圆_Java_Javafx - Fatal编程技术网

Java 如何在散点图的X、Y轴中间添加圆

Java 如何在散点图的X、Y轴中间添加圆,java,javafx,Java,Javafx,我有一个散点图: AnchorPane anchorPane; XYChart.Series series1 = new XYChart.Series(); XYChart.Series series2 = new XYChart.Series(); NumberAxis xAxis = new NumberAxis(0, 10, 1); NumberAxis yAxis = new NumberAxis(-100, 500, 100); ScatterChart<Nu

我有一个散点图:

AnchorPane anchorPane;  
XYChart.Series series1 = new XYChart.Series();
XYChart.Series series2 = new XYChart.Series();
NumberAxis xAxis = new NumberAxis(0, 10, 1);
NumberAxis yAxis = new NumberAxis(-100, 500, 100);        
ScatterChart<Number,Number> sc = new ScatterChart<Number,Number>(xAxis,yAxis);
我正在动态地将元素添加到图形中,因此我设置了轴自动测距:

xAxis.setAutoRanging(true);
yAxis.setAutoRanging(true);
我需要将圆添加到图形的中间(即图形的中心将是轴的(0,0))

我已尝试通过以下方式实现:

Circle circle = new Circle(90);       
double midx = (sc.getXAxis().getMaxHeight() - sc.getXAxis().getMinHeight()) / 2; 
double midy = (sc.getYAxis().getMaxHeight() - sc.getYAxis().getMinHeight()) / 2;
circle.setCenterX(midx);
circle.setCenterY(midy);
anchorPane.getChildren().add(circle);
但它不起作用。(圆圈添加到锚的左上角,而不是我想要的)


我该怎么做呢?

因为如果检查
sc.getXAxis().getMaxHeight()和
sc.getXAxis().getMinHeight()的值,它们都是-1.0

double midx = (sc.getXAxis().getMaxHeight() - sc.getXAxis().getMinHeight()) / 2;
这里的结果是0

因此,您所做的是在(0,0)处创建圆坐标。此外,您正在将这些圆添加到您的
anchorPane
,而不是您的
sc
。即使您可以将圆添加到正确的点,您的
散点图也不会增长,因为
sc
将不会有任何数据。您可以使用
XYChart.Series
将数据添加到图表中。显然您尝试过,但没有使用在当前脚本中删除它。在创建新圆圈之前所做的一切都是正确的,除了
XYChart。如果计划只向图表添加一种类型的符号,则不需要系列系列2

sc.getData().add(series1);
现在,您将序列绑定到
散点图
现在,我们需要计算
散点图
的中间部分,并使用这些位置添加新数据

double midx = (xAxis.getUpperBound() - xAxis.getLowerBound()) / 2;
double midy = (yAxis.getUpperBound() - yAxis.getLowerBound()) / 2;
使用这些位置添加新符号

series1.getData().add(new XYChart.Data(midx, midy));

你现在应该在散点图的中间有一个圆圈,如果你想改变符号的属性,你可以使用CSS。更详细的例子是,因为如果你检查
sc.getXAxis().getMaxHeight()
sc.getXAxis().getMinHeight()
的值,它们都是-1.0

double midx = (sc.getXAxis().getMaxHeight() - sc.getXAxis().getMinHeight()) / 2;
这里的结果是0

因此,您所做的是在(0,0)处创建圆坐标。此外,您正在将这些圆添加到您的
anchorPane
,而不是您的
sc
。即使您可以将圆添加到正确的点,您的
散点图也不会增长,因为
sc
将不会有任何数据。您可以使用
XYChart.Series
将数据添加到图表中。显然您尝试过,但没有使用在当前脚本中删除它。在创建新圆圈之前所做的一切都是正确的,除了
XYChart。如果计划只向图表添加一种类型的符号,则不需要系列系列2

sc.getData().add(series1);
现在,您将序列绑定到
散点图
现在,我们需要计算
散点图
的中间部分,并使用这些位置添加新数据

double midx = (xAxis.getUpperBound() - xAxis.getLowerBound()) / 2;
double midy = (yAxis.getUpperBound() - yAxis.getLowerBound()) / 2;
使用这些位置添加新符号

series1.getData().add(new XYChart.Data(midx, midy));

你现在应该在散点图的中间有一个圆圈,如果你想更改符号的属性,你可以使用CSS。关于

更详细的例子,你没有回答我的问题。我知道如何在散点图中添加元素。但我要求在图(如雷达图)上添加圆圈(而不是图形元素之一).你没有回答我的问题。我知道如何在散点图中添加元素。但我要求在图(如雷达图)上添加圆圈(而不是一个图形元素)。