java如何判断堆叠条形图的轴的行为?
情况如下:
图形初始化如下:
protected NumberAxis xAxis;
protected NumberAxis yAxis;
protected StackedAreaChart<Number, Number> chart;
protected final XYChart.Series<Number, Number> waitingSeries
= new XYChart.Series<>();
protected final XYChart.Series<Number, Number> startedSeries
= new XYChart.Series<>();
protected final XYChart.Series<Number, Number> successSeries
= new XYChart.Series<>();
protected final XYChart.Series<Number, Number> failureSeries
= new XYChart.Series<>();
// ...
@Override
public void init()
{
// ...
xAxis = new NumberAxis();
xAxis.setLabel("Line number");
xAxis.setForceZeroInRange(false);
xAxis.setTickUnit(1.0);
xAxis.setTickMarkVisible(false);
yAxis = new NumberAxis();
yAxis.setTickMarkVisible(false);
chart = new StackedAreaChart<>(xAxis, yAxis);
chart.setAnimated(false);
chart.setTitle("Matcher status by line");
waitingSeries.setName("Waiting for children");
startedSeries.setName("Started this line");
successSeries.setName("Succeeded this line");
failureSeries.setName("Failed this line");
final ObservableList<XYChart.Series<Number, Number>> data
= chart.getData();
data.add(waitingSeries);
data.add(startedSeries);
data.add(successSeries);
data.add(failureSeries);
pane.setCenter(chart);
}
好的,那么:
- 即使我在两个轴上设置记号不应可见,但它们是可见的李>
- 尽管我告诉
xAxis
它的步长应该是1,但它显示的是分数李> - 然后是这个,我在这里更新数据:
(使用SO聊天和项目符号列表与代码解决bug)
@Override
public void showLineMatcherStatus(final List<LineMatcherStatus> list,
final int startLine, final int nrLines)
{
display.xAxis.setLowerBound(startLine);
display.xAxis.setUpperBound(startLine + nrLines - 1);
// etc
startLine
在这个例子中是1,nrLines
是25,那么,结束线是25。很好,边界得到尊重
。。。但是为什么x轴的范围是0到27.5
如何使轴正常工作
# 1 楼答案
默认情况下,
NumberAxis
将autoRanging
设置为true
,以便让它尊重您需要的上下限对于记号,如果你仔细观察你的图像,你会发现在实际数字旁边没有记号;仅在两者之间的“次要值”处
所以你两者都需要
及