当前位置:编程学习 > JAVA >>

Jfreechart生成的折线图怎么设置固定的X轴刻度

读取得的Data数据,数据是取得某一时刻(如2013/12/19 10:09:45.22)之后一分钟的数据,每一分钟有6000条,意思是,数据之间的间隔是0.01秒,我想X轴的刻度是(0秒、10秒、20秒、30秒、40秒、50秒、60秒)不变的,然后把数据根据它对应的时间显示到折线图上,这要怎么做?
求大神帮忙!我试了许多方法,X轴都没办法固定如上刻度 --------------------编程问答-------------------- 没有人知道吗? --------------------编程问答-------------------- --------------------编程问答-------------------- 就是上面这种图片,数据信息是每0.01秒有一个,搞了很久都没解决,第一次用Jfreechart,还不太熟悉,求帮忙! --------------------编程问答--------------------

        //X轴单位数据
        String[] columKeys = {"0","10","20","30","40","50","60"};
        //创建Dataset对象
        CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columKeys, data);
--------------------编程问答-------------------- 回复于: 2013-07-09 11:16:25 




Java code
?


1234 

        //X轴单位数据        String[] columKeys = {"0","10","20","30","40","50","60"};        //创建Dataset对象        CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columKeys, data); 
--------------------编程问答--------------------
引用 4 楼 zhyli_c 的回复:

        //X轴单位数据
        String[] columKeys = {"0","10","20","30","40","50","60"};
        //创建Dataset对象
        CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columKeys, data);
columKeys 的大小不是要和data的一致?我记得我之前这么写是报错的 --------------------编程问答--------------------
//X軸
DateAxis domainAxis = (DateAxis) categoryplot.getDomainAxis();
domainAxis.setTickLabelFont(new Font("Dialog", Font.PLAIN, 10));
SimpleDateFormat formatter = new SimpleDateFormat("ss秒");
DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss:SS");
domainAxis.setAutoTickUnitSelection(false);
DateTickUnit tickUnit = new DateTickUnit(DateTickUnitType.SECOND, 10, formatter);
domainAxis.setTickUnit(tickUnit);
domainAxis.setMinimumDate(sdf.parse(happenDate+":00:000"));
domainAxis.setMaximumDate(sdf.parse(happenDate+":60:000"));
--------------------编程问答-------------------- 我用上面方法写了之后,X坐标轴的刻度是09秒,19秒,29秒,39秒,49秒,59秒,怎么修改成0秒(在原点处),10秒,20秒,30秒,40秒,50秒,60秒???? --------------------编程问答-------------------- DateAxis xAxis = (DateAxis) plot.getDomainAxis();// X横轴刻度设计
xAxis.setTickUnit(new DateTickUnit(DateTickUnit.DAY, 1,
new SimpleDateFormat("d")));

这是设置x轴刻度的代码 不过我这是以天数为x轴  这里了需要你思考一下 怎么换成你要的那种方式  --------------------编程问答--------------------
引用 8 楼 gracelun 的回复:
我用上面方法写了之后,X坐标轴的刻度是09秒,19秒,29秒,39秒,49秒,59秒,怎么修改成0秒(在原点处),10秒,20秒,30秒,40秒,50秒,60秒????


既然多了9秒 那就减到处理了 --------------------编程问答--------------------
引用 10 楼 luccs624061082 的回复:
Quote: 引用 8 楼 gracelun 的回复:

我用上面方法写了之后,X坐标轴的刻度是09秒,19秒,29秒,39秒,49秒,59秒,怎么修改成0秒(在原点处),10秒,20秒,30秒,40秒,50秒,60秒????


既然多了9秒 那就减到处理了
domainAxis.setMinimumDate(sdf.parse(happenDate+":-1:000"));
domainAxis.setMaximumDate(sdf.parse(happenDate+":61:000"));
这两句我修改之后可以显示0秒,10秒,20秒,30秒,40秒,50秒,0秒。但是出不来60秒怎么办? --------------------编程问答-------------------- 用higncharts吧 拼json对象到前台就OK了
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,