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,还不太熟悉,求帮忙! --------------------编程问答--------------------
--------------------编程问答-------------------- 回复于: 2013-07-09 11:16:25
//X轴单位数据
String[] columKeys = {"0","10","20","30","40","50","60"};
//创建Dataset对象
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columKeys, data);
Java code
?
1234
//X轴单位数据 String[] columKeys = {"0","10","20","30","40","50","60"}; //创建Dataset对象 CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columKeys, data);
--------------------编程问答-------------------- columKeys 的大小不是要和data的一致?我记得我之前这么写是报错的 --------------------编程问答--------------------
//X軸--------------------编程问答-------------------- 我用上面方法写了之后,X坐标轴的刻度是09秒,19秒,29秒,39秒,49秒,59秒,怎么修改成0秒(在原点处),10秒,20秒,30秒,40秒,50秒,60秒???? --------------------编程问答-------------------- DateAxis xAxis = (DateAxis) plot.getDomainAxis();// 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"));
xAxis.setTickUnit(new DateTickUnit(DateTickUnit.DAY, 1,
new SimpleDateFormat("d")));
这是设置x轴刻度的代码 不过我这是以天数为x轴 这里了需要你思考一下 怎么换成你要的那种方式 --------------------编程问答--------------------
既然多了9秒 那就减到处理了 --------------------编程问答--------------------
domainAxis.setMinimumDate(sdf.parse(happenDate+":-1:000"));这两句我修改之后可以显示0秒,10秒,20秒,30秒,40秒,50秒,0秒。但是出不来60秒怎么办? --------------------编程问答-------------------- 用higncharts吧 拼json对象到前台就OK了
domainAxis.setMaximumDate(sdf.parse(happenDate+":61:000"));
补充:Java , Web 开发