JFreeChart中标签颜色的更改

9

有使用JFreeChart经验的人,有没有办法更改我的XY轴标签的颜色。目前我正在使用XYPlot,我想要更改轴上标签的颜色。有没有办法做到这一点?

2个回答

10

1
谢谢您回答我的问题。对于其他遇到这个问题的人,我遇到了一个小问题,就是XYPlot的getDomainAxis()返回一个ValueAxis。但是我看了文档,意识到Valueaxis是Axis的子类。 - Albinoswordfish
1
很好。JFreeChart 的一个不错的特性是其 API 文档采用了 linksource 选项构建,因此您可以通过点击名称进行导航。 - trashgod
能否在一个标签内更改绘制颜色?例如,标签的第一个单词为黑色,第二个单词为灰色? - CGFoX
我记得有对 AttributedString 的支持,但我还没有尝试过。 - trashgod

3

我使用了这段代码来改变所有标签的颜色:

private void setFontColor(Color fontColor) {
    JFreeChart chart = getChart();
    chart.getTitle().setPaint(fontColor);
    Plot plot = chart.getPlot();
    if (plot instanceof CategoryPlot) {
        setAxisFontColor(((CategoryPlot) plot).getDomainAxis(), fontColor);
        setAxisFontColor(((CategoryPlot) plot).getRangeAxis(), fontColor);
    } else if (plot instanceof XYPlot) {
        setAxisFontColor(((XYPlot) plot).getDomainAxis(), fontColor);
        setAxisFontColor(((XYPlot) plot).getRangeAxis(), fontColor);
    }
}

private void setAxisFontColor(Axis axis, Color fontColor) {
    if (!fontColor.equals(axis.getLabelPaint()))
        axis.setLabelPaint(fontColor);
    if (!fontColor.equals(axis.getTickLabelPaint()))
        axis.setTickLabelPaint(fontColor);
}

如果您使用字幕,您也需要添加它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接