2

我正在使用 JFreeChart 库来创建图表。我需要在同一张图表上呈现大量数据。因此,我有许多范围轴描述。不幸的是,当范围轴太多时,图表不再可见。可以通过调用这个简单的线条使图表可见(其中 plot 是一个 XYPlot 实例):

int axises = plot.getRangeAxisCount();
for (int i = 0; i < axises; i++) {
   plot.getRangeAxis(i).setVisible(false);
}

这个简单的代码部分隐藏了所有 RangeAxes。执行该代码后,图表没有范围轴的任何描述,但它是可见的。

但不幸的是,我无法弄清楚如何确定图表在处理期间是否可见。

对我来说重要的信息在:

chartPanel.getChartRenderingInfo().getPlotInfo().getDataArea().getWidth()

但不幸的是,我在图表上执行了许多操作(例如缩放、移动等),因此当图表状态发生变化时,我每次都需要获取这些信息。每当调用 PlotChangeListener 接口的 plotChanged() 方法时,我都无法获取该信息,因为没有绘图(未触发此事件)。ChartChangeListener 中的 chartChanged() 方法过早触发 - chartPanel.getChartRenderingInfo().getPlotInfo().getDataArea().getWidth() 返回旧值。有任何想法吗?

4

1 回答 1

2

您可以ChartProgressListenerChartPanel.

chart.addProgressListener(new ChartProgressListener() {

    @Override
    public void chartProgress(ChartProgressEvent event) {
        System.out.println(event.getType() + " "
            + event.getPercent() + " "
            + chartPanel.getChartRenderingInfo()
                .getPlotInfo().getDataArea().getWidth());
    }
});
于 2013-01-14T13:56:02.147 回答