是否可以在JFreeChart上仅显示所选类别的值?
chart 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);
答案 0 :(得分: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);
}