每秒更新一次的样条线
我们已经在Highcharts 配置语法一章中看到了用于绘制图表的配置。
下面给出了每秒更新一次的样条线图示例。
配置
现在让我们看看采取的其他配置/步骤。
series.addPoint
以 1000 毫秒的间隔将随机创建的新点添加到系列中。
Timer tempTimer = new Timer() { @Override public void run() { series.addPoint( new Date().getTime(), Random.nextDouble(), true, true, true ); } }; tempTimer.scheduleRepeating(1000);
示例
HelloWorld.java
package com.tutorialspoint.client; import java.util.Date; import org.moxieapps.gwt.highcharts.client.Chart; import org.moxieapps.gwt.highcharts.client.Credits; import org.moxieapps.gwt.highcharts.client.Legend; import org.moxieapps.gwt.highcharts.client.Series; import org.moxieapps.gwt.highcharts.client.ToolTip; import org.moxieapps.gwt.highcharts.client.ToolTipData; import org.moxieapps.gwt.highcharts.client.ToolTipFormatter; import org.moxieapps.gwt.highcharts.client.Series.Type; import org.moxieapps.gwt.highcharts.client.labels.DataLabels; import org.moxieapps.gwt.highcharts.client.plotOptions.BarPlotOptions; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.i18n.client.DateTimeFormat; import com.google.gwt.i18n.client.NumberFormat; import com.google.gwt.user.client.Random; import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.ui.RootPanel; public class HelloWorld implements EntryPoint { public void onModuleLoad() { final Chart chart = new Chart() .setChartTitleText("Live random data") .setType(Type.SPLINE) .setMarginRight(10) .setBarPlotOptions(new BarPlotOptions() .setDataLabels(new DataLabels() .setEnabled(true) ) ) .setLegend(new Legend() .setEnabled(true) ) .setCredits(new Credits() .setEnabled(false) ) .setToolTip(new ToolTip() .setFormatter(new ToolTipFormatter() { @Override public String format(ToolTipData toolTipData) { return "<b>" + toolTipData.getSeriesName() + "</b><br/>" + DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss") .format(new Date(toolTipData.getXAsLong())) + "<br/>" + NumberFormat.getFormat("0.00").format(toolTipData.getYAsDouble()); } }) ); chart.getXAxis() .setType(org.moxieapps.gwt.highcharts.client.Axis.Type.DATE_TIME) .setTickInterval(150); chart.getYAxis() .setAxisTitleText("Value") .setPlotLines(chart.getYAxis().createPlotLine() .setValue(0) .setWidth(1) .setColor("#808080") ); final Series series = chart.createSeries(); series.setName("Random Data"); chart.addSeries(series); // Generate an array of random data long time = new Date().getTime(); for(int i = -19; i <= 0; i++) { series.addPoint(time + i * 1000, Random.nextDouble()); } Timer tempTimer = new Timer() { @Override public void run() { series.addPoint( new Date().getTime(), Random.nextDouble(), true, true, true ); } }; tempTimer.scheduleRepeating(1000); RootPanel.get().add(chart); } }
结果
验证结果。
gwt_highcharts_dynamic_charts.html