java JFreeChart 问题,X轴显示的是时间,但是数据太多,挤成一团,如何让X轴只显示10个时间 30

 我来答
Utrecht1984
2015-04-09 · TA获得超过157个赞
知道答主
回答量:72
采纳率:0%
帮助的人:85.2万
展开全部

调整前(默认1年单位)

调整后(5年单位)

取得XYPlot,然后在DomainAxis里可以设置刻度。

(找了1小时。。。求采纳,没有功劳也有苦劳啊)

下面的代码是5年单位显示。

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.axis.DateTickUnit;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.time.Month;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;

public class TimeSeriesChartSample {

    public static void main(String[] args) throws IOException {
        // Create Data
        TimeSeries s1 = new TimeSeries("XXXX");
        for (int i = 0; i < 10; i++) {
            int year = 2000 + i;
            s1.add(new Month(1, year), 101.8);
            s1.add(new Month(2, year), 104.8);
            s1.add(new Month(3, year), 103.3);
            s1.add(new Month(4, year), 105.8);
            s1.add(new Month(5, year), 110.6);
            s1.add(new Month(6, year), 120.8);
            s1.add(new Month(7, year), 115.3);
            s1.add(new Month(8, year), 130.9);
            s1.add(new Month(9, year), 131.7);
            s1.add(new Month(10, year), 140.2);
            s1.add(new Month(11, year), 141.8);
            s1.add(new Month(12, year), 160.6);
        }

        TimeSeriesCollection dataset = new TimeSeriesCollection();
        dataset.addSeries(s1);

        // Create JFreeChart
        JFreeChart chart = ChartFactory.createTimeSeriesChart("TITLE", "TIME AXIS LABEL",
                "VALUE AXIS LABEL", dataset, true, true, false);
        
        // 这里是关键
        XYPlot xyplot = (XYPlot) chart.getPlot();
        DateAxis domainAxis = (DateAxis) xyplot.getDomainAxis(); //x轴设置
        domainAxis.setTickUnit(new DateTickUnit(DateTickUnit.YEAR, 5, new SimpleDateFormat("yyyy")));

        // Output
        File outputFile = new File("SampleTimeSeriesChart.png");
        ChartUtilities.saveChartAsPNG(outputFile, chart, 500, 500);
    }
}

推荐这里,Jfreechart大全:

http://my.oschina.net/abian/blog/278465

匿名用户
2015-04-08
展开全部
数据抽取一些出来,即是进步大一些
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式