1

是否可以在 JFreeChart 上仅显示所选类别的值?

图表 http://img200.imageshack.us/img200/8329/2npa.png

例如,我在上图中有三个类别,我想给用户一个选择选项,以仅查看所选类别的值。

这是我的 JFreeChart 创建代码:

    lineDataset = new XYSeriesCollection();
    JFreeChart result = ChartFactory.createXYAreaChart("", "Mesafe", "Seviye", lineDataset, PlotOrientation.VERTICAL, true, true, false);
    plot = (XYPlot) result.getPlot();
    ValueAxis axis = plot.getDomainAxis();
    axis.setAutoRange(true);
4

1 回答 1

2

从情节中获取渲染器使我们有机会通过以下方式设置系列的可见性

renderer = plot.getRenderer();
renderer.setSeriesVisible(int indexOfSeries, Boolean isSelected);

为每个系列创建复选框并将选择或操作侦听器添加到这些复选框是图表和用户之间交互的好方法。

对于 SWT:

        Button btnCheckButton = new Button(parent, SWT.CHECK);
        btnCheckButton.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                if(btnCheckButton.getSelection()) {
                    setSeriesVisibility((Integer)btnCheckButton.getData(seriesName), true);
                } else {
                    setSeriesVisibility((Integer)btnCheckButton.getData(seriesName), false);
                }
            }
        });
        btnCheckButton.setText(seriesName);
        btnCheckButton.setData(seriesName, index);
        btnCheckButton.setSelection(true);

这是setter函数

public void setSeriesVisibility(int i, boolean isSelected) {
    renderer.setSeriesVisible(i, isSelected);
}
于 2013-09-19T12:13:25.077 回答