Jfreechart时序图(折线图)
package com.testchart;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Paint;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import com.dataForm.ParameterForm;
public class RealTimeChart extends ChartPanel implements Runnable {
private static TimeSeries timeSeries;
private static TimeSeries timeSeries1;
private static TimeSeries timeSeries2;
private static ParameterForm pf;
private static final long serialVersionUID = 1L;
public RealTimeChart(String chartContent,String title,String yaxisName,ParameterForm pf)
{
super(createChart(chartContent,title,yaxisName));
//设置显示区域的尺寸
this.setPreferredSize(new Dimension(500,200));
this.pf = pf;
}
private static JFreeChart createChart(String chartContent,String title,String yaxisName){
//创建时序图对象
//第一条折线
timeSeries = new TimeSeries("调整后的直径",Millisecond.class);
//第二条折线
timeSeries1 = new TimeSeries("目标直径",Millisecond.class);
//第三条折线
timeSeries2 = new TimeSeries("调整之前的直径",Millisecond.class);
TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(timeSeries);
timeseriescollection.addSeries(timeSeries1);
timeseriescollection.addSeries(timeSeries2);
JFreeChart jfreechart = ChartFactory.createTimeSeriesChart(
"直径变化时序图",
"时间(秒)",
yaxisName,
timeseriescollection,
true,
true,
false);
jfreechart.getTitle().setFont(new Font("宋体",12,12));
jfreechart.getLegend().setItemFont(new Font("宋体",12,12));
jfreechart.setBackgroundPaint(Color.GREEN);
XYPlot xyplot = jfreechart.getXYPlot();
//XY轴上的字体
xyplot.getRangeAxis().setLabelFont(new Font("宋体", 12, 12));
xyplot.getDomainAxis().setLabelFont(new Font("宋体", 12, 12));
//坐标轴
xyplot.setBackgroundPaint(Color.lightGray);
xyplot.setDomainGridlinePaint(Color.white);
xyplot.setRangeGridlinePaint(Color.white);
//xyplot.setAxisOffset(new Spacer(1, 4D, 4D, 4D, 4D));
ValueAxis valueaxis = xyplot.getDomainAxis();
valueaxis.setAutoRange(true);
valueaxis.setFixedAutoRange(10000D);
valueaxis = xyplot.getRangeAxis();
return jfreechart;
}
public void run() {
// TODO Auto-generated method stub
while(true){
try{
System.out.println(pf.getZhijing());
timeSeries.add(new Millisecond(), pf.getZhijing());//调整之后的直径
timeSeries1.add(new Millisecond(), pf.getMubiao_zhijing());//目标直径
timeSeries2.add(new Millisecond(), pf.getMubiao_zhijing()+(Math.random()*2-1));//调整之后的直径
Thread.sleep(300);
}catch (InterruptedException e) { }
}
}
private long randomNum(float mubiao_zhijing){
System.out.println("调整之前的直径="+(mubiao_zhijing+(Math.random()*2-1)));
return (long) (mubiao_zhijing+(Math.random()*2-1));
}
public static void main(String[] args){
JFrame frame=new JFrame("Test Chart");
RealTimeChart rtcp=new RealTimeChart("Random Data","随机数","数值",pf);
frame.getContentPane().add(rtcp,new BorderLayout().CENTER);
frame.pack();
frame.setVisible(true);
(new Thread(rtcp)).start();
frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent windowevent){
System.exit(0);
}
});
}
}
分享到:
相关推荐
JFreeChart生成柱形图完整测试代码 放在普通项目里运行main方法就能生成柱形图 不需要添加任何代码 可根据自己需要修改参数
JFreeChart是一个流行的Java库,用于生成各种类型的图表,包括折线图、饼图和柱状图,甚至堆栈柱状图。这个压缩包中的"CreateChartServiceImpl.java"文件很可能包含了一个实现这些功能的服务类。 首先,我们要理解...
本篇将深入探讨如何利用JFreeChart生成雷达图以及相关的数据导出功能。 **雷达图的使用** 雷达图是一种多维数据可视化工具,特别适合于比较多个变量在同一标准下的表现。在JFreeChart中,创建雷达图主要分为以下几...
jfreechart生成各种图表 柱状 饼状 折线 锥状
本实例将探讨如何利用JFreeChart生成时序图,并结合数据库数据来展示动态变化的过程。 **JFreeChart简介** JFreeChart是一个开放源码的Java类库,它提供了一组丰富的API,使得开发者能够轻松地在Java应用中生成高...
本例子将详细介绍如何利用JFreeChart生成统计图,特别是柱状图和饼图。 首先,我们需要导入JFreeChart库。通常,这涉及到在项目中添加JFreeChart的jar包。在提供的压缩包中,`chartDemo`可能是包含示例代码的Java...
这个例子的压缩包“JFreeChart生成图表的例子.rar”包含了一些示例代码,帮助开发者理解如何利用JFreeChart在Java应用程序中生成图表。 JFreeChart库的核心功能在于它提供了丰富的API,允许开发者自定义图表的各个...
JFreeChart 是一个开源的 Java 图表库,它提供了丰富的图表类型,如柱状图、饼图、线图、散点图、面积图等,用于生成高质量的静态和动态图表。这个库广泛应用于数据分析、报告生成、Web 应用和桌面应用中。在初学者...
JFreeChart是一款强大的Java图表库,它允许开发者在应用程序、Swing组件或Web应用中创建各种图表,如柱状图、饼图、折线图等。这个库支持丰富的定制选项,使得图表可以按照用户需求进行个性化设计。在这个...
在Java编程环境中,JFreeChart库是一个非常强大的工具,它允许开发者轻松地创建各种图表,如柱状图、饼图、时序图和折线图等。这些图表在数据分析、报表展示以及各种可视化应用中非常常见。下面我们将详细介绍如何...
标题中提到的“jfreechart生成折线图、饼图、柱状图、堆栈柱状图”是指使用Java的一个开源图形库JFreeChart来创建不同类型的统计图表。JFreeChart是一个功能全面、成熟的Java图表库,广泛应用于各种应用程序中进行...
通过这种方式,Java开发者可以使用JFreeChart库轻松地实现从文本文件读取股票数据并生成时序图,为股票分析提供直观的视觉展示。同时,这种技术也可以应用于其他需要时间序列数据可视化的场景,如天气数据、销售报告...
java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图
标题“Spring+JFreeChart 自动生成统计图”涉及的是在Java开发环境中,利用Spring框架和JFreeChart库来动态生成图表的技巧。这篇文章可能是介绍如何在Spring应用中集成JFreeChart,以便为数据可视化提供服务。 ...
在Java Web开发领域,Struts框架因其强大的MVC架构而广受欢迎,而JFreeChart则是一款开源的Java图表库,它能够生成各种类型的图表,如柱状图、折线图、饼图等。本文将详细介绍如何在Struts项目中集成JFreeChart来...
JFREECHART柱图
总的来说,JFreeChart库提供了丰富的功能来生成具有专业外观的雷达图,使其成为Java开发人员在数据可视化领域的一个强大工具。无论你是为了分析还是报告,都能利用JFreeChart轻松创建出符合需求的雷达图,清晰地展示...
7. **扩展性**:jFreeChart不仅限于静态图片输出,还可以生成SVG矢量图、PDF文档,甚至直接在Swing或JavaFX界面中绘制图表。同时,与其他Java库(如JDBC、CSV解析库)结合,能方便地从数据库或文件中获取数据并生成...
jfreechart 生成折线图、饼图、柱状图、堆栈柱状图 jfreechart 是一个功能强大且流行的 Java 图表库,用于生成各种类型的图表,包括折线图、饼图、柱状图、堆栈柱状图等。在本文中,我们将使用 jfreechart 1.0.8a ...