【问题标题】:ItemLabelPosition for multiple XYSeries on a XYLineChart - JFreeChartXYLineChart 上多个 XYSeries 的 ItemLabelPosition - JFreeChart
【发布时间】:2014-08-06 00:20:06
【问题描述】:

我试图弄清楚如何控制 XYLineChart 的 2 个不同 XYSeries 的标签。例如,我有一个线系列显示房屋的实际市场价值,另一个线系列显示最大评估价值。但是,线上的一些标签重叠。我能够通过访问 XYItemRenderer 和 ItemLabelPosition 来控制线条的整体标签,但这作为一个整体起作用。我需要调整每一行的标签。有什么建议么?谢谢。

【问题讨论】:

    标签: jfreechart


    【解决方案1】:

    您可以使用渲染器的方法setSeriesItemLabelsVisible() 控制每个系列标签的可见性。使用JCheckBox、看到hereJComboBox、看到here,以允许用户根据需要调整可见性。使用Preferences 保持用户的选择。

    【讨论】:

      【解决方案2】:

      非常感谢您的帮助。你为我指明了正确的方向。这是我用来控制项目标签位置的过程。

      1. 获取 AbstractXYItemRenderer
      2. 获取 ItemLabelPosition 并自定义
      3. 使用 AbstractXYItemRenderer 的 setSeriesPositionItemLabelPosition 方法设置位置

      final AbstractXYItemRenderer xyRenderer = (AbstractXYItemRenderer) this.chart.getXYPlot().getRenderer();

      最终 ItemLabelPosition p1 = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.TOP_CENTER, TextAnchor.TOP_CENTER, - Math.PI / 4); xyRenderer.setItemLabelAnchorOffset(6.5); xyRenderer.setSeriesItemLabelPaint(1, Color.BLUE); xyRenderer.setSeriesPositiveItemLabelPosition(1, p1);

      最终 ItemLabelPosition p2 = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE6, TextAnchor.BOTTOM_CENTER, TextAnchor.BOTTOM_CENTER, - Math.PI / 4); xyRenderer.setItemLabelAnchorOffset(-8.5); xyRenderer.setSeriesItemLabelPaint(0, Color.RED); xyRenderer.setSeriesPositiveItemLabelPosition(0, p2);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-27
        • 2013-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多