jFreeChart图表从NumberAxis中删除y标签

时间:2014-03-22 13:55:00

标签: java jfreechart

如何从JFreeChart图表中删除y标签?我的y轴使用NumberAxis

我似乎无法在任何地方找到一个简单的方法。

我想要类似于删除图例语法:

    // Remove the legend
    chart.removeLegend();

请注意,我想要在NumberAxis中定义标题:

NumberAxis axis1 = new NumberAxis("A random title");

我根本不希望它出现在最终图表中。

2 个答案:

答案 0 :(得分:3)

认为您的意思是要隐藏Y轴的 tick 标签,但仍希望看到轴本身的标签。我是对的吗?

你可以这样做:

axis1.setTickLabelsVisible(false);

好的,如果你想:

  • 隐藏图表中的标签
  • 但仍然在NumberAxis

然后有一个解决方案,也不是完美的,你可以使用。如果您设置"属性标签" (带有额外字体标记属性的标签),它将绘制属性标签。 您可以将其设置为单个空格(零长度字符串不起作用 - 字体呈现代码不允许这样做。)

rangeAxis.setAttributedLabel(" ");

至少axis1.getLabel()仍会返回您的旧标签,但这是我能看到的唯一好处。

否则,您可以继承NumberAxis并覆盖子类中的方法drawLabel,不执行任何操作:

protected AxisState drawLabel(String label, Graphics2D g2,
        Rectangle2D plotArea, Rectangle2D dataArea, RectangleEdge edge,
        AxisState state) {
    return state;
}

答案 1 :(得分:0)

到目前为止,我最好的解决方案是:

axis1.setLabel(null);

但这只是覆盖原始标签(所以不是一个好的解决方案)。