Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Yes, you can do it. I was facing a similar problem a few days ago. </p> <p>DynamicLineAndTimeSeriesChart.java</p> <pre><code>import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Timer; import javax.swing.JPanel; 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 org.jfree.data.xy.XYDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; /** * An example to show how we can create a dynamic chart. */ public class DynamicLineAndTimeSeriesChart extends ApplicationFrame implements ActionListener { /** The time series data. */ private TimeSeries series; /** The most recent value added. */ private double lastValue = 100.0; /** Timer to refresh graph after every 1/4th of a second */ private Timer timer = new Timer(250, this); /** * Constructs a new dynamic chart application. * * @param title the frame title. */ public DynamicLineAndTimeSeriesChart(final String title) { super(title); this.series = new TimeSeries("Random Data", Millisecond.class); final TimeSeriesCollection dataset = new TimeSeriesCollection(this.series); final JFreeChart chart = createChart(dataset); timer.setInitialDelay(1000); //Sets background color of chart chart.setBackgroundPaint(Color.LIGHT_GRAY); //Created JPanel to show graph on screen final JPanel content = new JPanel(new BorderLayout()); //Created Chartpanel for chart area final ChartPanel chartPanel = new ChartPanel(chart); //Added chartpanel to main panel content.add(chartPanel); //Sets the size of whole window (JPanel) chartPanel.setPreferredSize(new java.awt.Dimension(800, 500)); //Puts the whole content on a Frame setContentPane(content); timer.start(); } /** * Creates a sample chart. * * @param dataset the dataset. * * @return A sample chart. */ private JFreeChart createChart(final XYDataset dataset) { final JFreeChart result = ChartFactory.createTimeSeriesChart( "Dynamic Line And TimeSeries Chart", "Time", "Value", dataset, true, true, false ); final XYPlot plot = result.getXYPlot(); plot.setBackgroundPaint(new Color(0xffffe0)); plot.setDomainGridlinesVisible(true); plot.setDomainGridlinePaint(Color.lightGray); plot.setRangeGridlinesVisible(true); plot.setRangeGridlinePaint(Color.lightGray); ValueAxis xaxis = plot.getDomainAxis(); xaxis.setAutoRange(true); //Domain axis would show data of 60 seconds for a time xaxis.setFixedAutoRange(60000.0); // 60 seconds xaxis.setVerticalTickLabels(true); ValueAxis yaxis = plot.getRangeAxis(); yaxis.setRange(0.0, 300.0); return result; } /** * Generates an random entry for a particular call made by time for every 1/4th of a second. * * @param e the action event. */ public void actionPerformed(final ActionEvent e) { final double factor = 0.9 + 0.2*Math.random(); this.lastValue = this.lastValue * factor; final Millisecond now = new Millisecond(); this.series.add(new Millisecond(), this.lastValue); System.out.println("Current Time in Milliseconds = " + now.toString()+", Current Value : "+this.lastValue); } /** * Starting point for the dynamic graph application. * * @param args ignored. */ public static void main(final String[] args) { final DynamicLineAndTimeSeriesChart demo = new DynamicLineAndTimeSeriesChart("Dynamic Line And TimeSeries Chart"); demo.pack(); RefineryUtilities.centerFrameOnScreen(demo); demo.setVisible(true); } } </code></pre> <p>Please also check here :</p> <p><a href="http://blog.odoobiz.com/2012/07/how-to-draw-dynamic-line-or-timeseries.html" rel="nofollow noreferrer">http://blog.odoobiz.com/2012/07/how-to-draw-dynamic-line-or-timeseries.html</a></p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload