java - 将钢包添加到图形数据到 XYPlot、XYShapeRenderer

标签 java jfreechart

我正在使用 jfreechart,我需要向我的系列数据添加标签。图形上有粗体点,需要标签...以下代码不起作用。

screenshot

    XYSeries series = new XYSeries("Average Size");
    series.add(.60, .70);
    XYDataset xyDataset = new XYSeriesCollection(series);

    XYItemRenderer rend = new XYShapeRenderer(); 

    XYItemLabelGenerator  generator = new XYItemLabelGenerator() {

        @Override
        public String generateLabel(XYDataset xyd, int i, int i1) {
            return "Some label?"; 
        }
    };
    //SeriesItemLabelGenerator
    rend.setBaseItemLabelGenerator(generator);
    rend.setBaseItemLabelsVisible(true);

    ItemLabelPosition pos = new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.TOP_LEFT);

    rend.setBasePositiveItemLabelPosition(pos);

最佳答案

我认为问题在于扩展 AbstractXYItemRenderer 的 XYShapeRenderer( http://www.jfree.org/jfreechart/api/javadoc/src-html/org/jfree/chart/renderer/xy/XYShapeRenderer.html ) 尚未实现 ItemLabelGenerator 逻辑。

所以,否则你将需要使用另一个渲染器。 例如,XYLineAndShapeRenderer( http://www.jfree.org/jfreechart/api/javadoc/src-html/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.html ) 实现它:

// draw the item label if there is one...
if (isItemLabelVisible(series, item)) {
  drawItemLabel(g2, orientation, dataset, series, item, xx, yy,(y1 < 0.0));
}

或者您需要自己扩展 XYShapeRenderer 并添加标签绘制逻辑,使用任何其他渲染器的源代码作为示例。

关于java - 将钢包添加到图形数据到 XYPlot、XYShapeRenderer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17291524/

相关文章:

java - 在 Struts2 中使用流结果

java - NetBeans java.lang.ClassNotFoundException

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

jfreechart - 如何在 XYSplineRenderer Graph 中将正方形的形状更改为点

java - JfreeChart 中的自动缩放 Y 轴

java - 将动态 HTTP header 添加到 WS 出站网关

java - 模块化/可插入的 Java Web 应用程序

java - 如何在jfreechart中用两个系列动态更新HistogramDataset?

java - 如何设置 JFreeChart 不订购数据集?

java - 如何在 JFreeChart TimeSeries 图表上显示降雨指数和温度?