【问题标题】:LineChart custmization issue - JFreeChart折线图自定义问题 - JFreeChart
【发布时间】:2015-04-30 20:21:23
【问题描述】:

我正在尝试使用 JFreeChart 创建图表。 我需要它有蓝线,白色背景的方形标记,并在每个标记上方显示值。但我需要它非常非常简单。下面的代码在一个方法中,该方法从数据库中恢复数据并放入dataset,并将图表生成为JPEG图像。

图表已生成,但我找不到按照我需要的方式自定义图表的方法。

我的代码如图:

// * 'graphicValues' data set is already created *

    JFreeChart graphicObject = ChartFactory.createLineChart("Classes",
            "months", //linha X
            "", //linha Y
            graphicValues, 
            PlotOrientation.VERTICAL, 
            true, 
            true,
            false);

    //Only command that seems to work
    graphicObject.setBackgroundPaint(Color.WHITE); 

     // * from here on, code works fine, I just save it as a file somewhere *

谁能帮我将线设置为蓝色并将值显示为方形标记上的标签?

非常感谢!

【问题讨论】:

    标签: java jsp user-interface jfreechart


    【解决方案1】:

    正如ChartFactory 的文档所说,ChartFactory.createLineChart

    使用默认设置创建折线图。返回的图表对象 通过这种方法,使用 CategoryPlot 实例作为绘图,带有 CategoryAxis 作为域轴, NumberAxis 作为范围轴,以及 一个 LineAndShapeRenderer 作为渲染器

    因此,使用该方法得到的只是所有默认设置,无法自定义图表。

    要自定义图表,您可能不得不放弃ChartFactory,并亲自继承一些JFreeChart 类。

    我建议您先看看ChartFactorysource 代码,您将了解它如何创建图表、“渲染器”和“绘图”以用于渲染图表。您可能必须将其中的一个或多个子类化,尤其是渲染器。查看LineAndShapeRenderer 源代码,了解渲染器的工作原理。

    【讨论】:

    • 你能打电话给((LineAndShapeRenderer)(chart.getPlot().getRenderer())).setSeriesPaint(0, Color.blue)等吗?
    • 非常同意他的来源,但另请参阅approach
    • 谢谢,灰胡子先生!我实际上发现了该怎么做,你是对的。还要感谢@trashgod。
    • @igorfeiden:很高兴你把它整理好了。今后,您可以通过点击左侧的empty check mark 来接受此答案。
    • 完成。再次感谢@trashgod。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 2012-11-23
    • 1970-01-01
    相关资源
    最近更新 更多