Java JFreeChart设置错误标签

Java JFreeChart设置错误标签,java,jfreechart,Java,Jfreechart,我正在使用JFreeChart来绘制一些数据,并且我已经对其进行了设置,以便图形显示每个点的标准误差: 标签显示每个点的Y值,但我希望能够显示标准误差的Y值。此外,有没有办法使这些数据只在鼠标悬停时显示 这是我用来添加错误和标签的代码: XYErrorRenderer renderer = new XYErrorRenderer(); renderer.setBaseLinesVisible(true); renderer.setBaseShapesVisible(true); rendere

我正在使用JFreeChart来绘制一些数据,并且我已经对其进行了设置,以便图形显示每个点的标准误差:

标签显示每个点的Y值,但我希望能够显示标准误差的Y值。此外,有没有办法使这些数据只在鼠标悬停时显示

这是我用来添加错误和标签的代码:

XYErrorRenderer renderer = new XYErrorRenderer();
renderer.setBaseLinesVisible(true);
renderer.setBaseShapesVisible(true);
renderer.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator("{2}",
    NumberFormat.getNumberInstance(),NumberFormat.getNumberInstance()));
renderer.setBaseItemLabelsVisible(true);
chart.getXYPlot().setRenderer(renderer);
提前感谢。

从抽象父级继承了它的实现,而抽象父级对错误条一无所知。您需要在自定义渲染器子类中重写
drawItem()
,以绘制额外的标签。for
drawItemLabel()
可以作为指南

附录:一个不太雄心勃勃的替代方案是在工具提示中显示错误范围。下面的自定义指定自定义格式字符串,并覆盖
createItemArray()
,以从数据集中提供相关的y值。由于您的
XYDataset
是一个
YIntervalSeriesCollection
,您可以按如下所示对其进行强制转换


你能用工具提示吗?是的,工具提示是我更愿意做的。我不知道如何创建自定义子类,因此我可能会将其称为Quits,这会在第5行出现“线程中的异常”AWT-EventQueue-0“java.lang.ClassCastException:org.jfree.data.xy.YIntervalSeriesCollection无法转换为org.jfree.data.xy.xyIntervalesCollection”的错误
renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator(
        "{0}: {1}…{2}", NumberFormat.getInstance(), NumberFormat.getInstance()) {
    @Override
    protected Object[] createItemArray(XYDataset data, int series, int item) {
        YIntervalSeriesCollection d = (YIntervalSeriesCollection) data;
        Object[] result = new Object[3];
        double y = d.getYValue(series, item);
        result[0] = getYFormat().format(y);
        double min = d.getStartYValue(series, item);
        result[1] = getYFormat().format(min);
        double max = d.getEndYValue(series, item);
        result[2] = getYFormat().format(max);
        return result;
    }
});