jfreechart 时间序列图当后台提供一个数据点的时候为什么图形上不显示

/**

**QQ:252574345

**MSN:lele_love_lomboz@hotmail.com

*/

 

为了使得时间序列图的时间轴按照一定间隔显示,例如

12:05 12:10 12:15 12:20 12:25 ......这样每隔5分钟显示一个点

 

需要如下设置才能做到:

   SimpleDateFormat frm = new SimpleDateFormat("k:mm");

   DateAxis  dateaxiss=(DateAxis)xyplot.getDomainAxis();

   int count=5;

  //时间轴间距是5分钟,格式为小时:分钟

   dateaxiss.setTickUnit(new DateTickUnit(DateTickUnit.MINUTE, count,frm));  

 

这个时候,当出现一个点的时候,时间轴自动不能设置时间间隔.因为这个后时候没有间距对比,因此,在曲线上,表现为该点不会显示出来

 

 

解决该问题:

 

判断只有曲线点个数>1时候,才设置时间轴间距

 

if(当前曲线点个数>1){

 

   SimpleDateFormat frm = new SimpleDateFormat("k:mm");

   DateAxis  dateaxiss=(DateAxis)xyplot.getDomainAxis();

   int count=5;

  //时间轴间距是5分钟,格式为小时:分钟

   dateaxiss.setTickUnit(new DateTickUnit(DateTickUnit.MINUTE, count,frm));  

 

}

 

 

这样,当出现一个点的时候,会显示出该点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会为您解答关于JFreeChart时间序列图的问题。 在JFreeChart中,时间序列图可以通过使用TimeSeries类和TimeSeriesCollection类来创建。基本的时间序列图主要包括以下几个元素: 1. 坐标轴:时间序列图通常使用时间轴作为横坐标轴,数值轴作为纵坐标轴。 2. 时间序列数据集:TimeSeriesCollection类可以用来存储一个或多个时间序列数据集。 3. 时间序列数据:TimeSeries类可以用来存储时间序列数据,它包括一个序列名称和一组数据。 4. 绘制器:TimeSeriesChart类是基本时间序列图的主要绘制器,它可以用来设置图表的标题、坐标轴、数据集等属性。 下面是创建基本时间序列图的代码示例: ``` // 创建时间序列数据集 TimeSeriesCollection dataset = new TimeSeriesCollection(); // 创建时间序列数据 TimeSeries series = new TimeSeries("数据名称"); series.add(new Second(0, 0, 0, 1, 1, 2019), 100); series.add(new Second(0, 0, 10, 1, 1, 2019), 200); series.add(new Second(0, 0, 20, 1, 1, 2019), 150); // 将时间序列数据添加到数据集中 dataset.addSeries(series); // 创建时间序列JFreeChart chart = ChartFactory.createTimeSeriesChart( "标题", "横坐标轴名称", "纵坐标轴名称", dataset, true, true, false ); // 设置图表属性 chart.setBackgroundPaint(Color.white); // 设置绘制器属性 XYPlot plot = chart.getXYPlot(); plot.setBackgroundPaint(Color.lightGray); plot.setDomainGridlinePaint(Color.white); plot.setRangeGridlinePaint(Color.white); // 设置横坐标轴属性 DateAxis axis = (DateAxis) plot.getDomainAxis(); axis.setDateFormatOverride(new SimpleDateFormat("HH:mm:ss")); axis.setLabelFont(new Font("宋体", Font.PLAIN, 12)); axis.setTickLabelFont(new Font("宋体", Font.PLAIN, 10)); // 设置纵坐标轴属性 NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); rangeAxis.setAutoRangeIncludesZero(true); rangeAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12)); rangeAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 10)); // 显示图表 ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new Dimension(500, 300)); frame.setContentPane(chartPanel); frame.pack(); frame.setVisible(true); ``` 在这个示例中,我们创建了一个时间序列数据集,然后向数据集中添加了一个时间序列数据。接着,我们使用ChartFactory.createTimeSeriesChart()方法创建了一个时间序列图,设置了图表的标题、坐标轴、数据集等属性。最后,我们设置了绘制器的属性,包括坐标轴的属性、标签字体等。最终,我们使用ChartPanel类将图表显示在界面上。 希望这个回答能够解决您的问题,如有不明确之处,欢迎继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值