样条曲线(Spline with symbols)

优质
小牛编辑
128浏览
2023-12-01

我们已经在Highcharts Configuration Syntax一章中看到了用于绘制此图表的配置 。 现在让我们考虑以下示例来进一步了解带有符号的样条曲线图。

配置 (Configurations)

使用marker.symbol属性将符号添加到一系列图表中。 它可以是预先配置的符号,如“square”,“diamond”或图像的url。 标记也可以添加到系列数据的任何位置。

chart.createSeries()  
   .setName("Tokyo")  
   .setPlotOptions(  
      new SplinePlotOptions()  
      .setMarker(  
         new Marker()  
            .setSymbol(Marker.Symbol.SQUARE)  
      )  
   )  

例子 (Example)

HelloWorld.java

package cn.xnip.client;
import org.moxieapps.gwt.highcharts.client.Chart;
import org.moxieapps.gwt.highcharts.client.Point;
import org.moxieapps.gwt.highcharts.client.Series.Type;
import org.moxieapps.gwt.highcharts.client.ToolTip;
import org.moxieapps.gwt.highcharts.client.XAxis;
import org.moxieapps.gwt.highcharts.client.YAxis;
import org.moxieapps.gwt.highcharts.client.labels.AxisLabelsData;
import org.moxieapps.gwt.highcharts.client.labels.AxisLabelsFormatter;
import org.moxieapps.gwt.highcharts.client.labels.YAxisLabels;
import org.moxieapps.gwt.highcharts.client.plotOptions.Marker;
import org.moxieapps.gwt.highcharts.client.plotOptions.SplinePlotOptions;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;
public class HelloWorld implements EntryPoint {
   public void onModuleLoad() {
      Chart chart = new Chart()
         .setType(Type.SPLINE)
         .setChartTitleText("Monthly Average Temperature")
         .setChartSubtitleText("Source: WorldClimate.com");
      XAxis xAxis = chart.getXAxis();
         xAxis.setCategories("Jan", "Feb", "Mar", "Apr", "May", "Jun",
            "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
      YAxis yAxis = chart.getYAxis();
      yAxis.setAxisTitleText("Temperature °C");
      yAxis.setLabels(
         new YAxisLabels()
         .setFormatter(new AxisLabelsFormatter() {
            @Override
            public String format(AxisLabelsData axisLabelsData) {
               return axisLabelsData.getValueAsLong() + "°";  
            }
         })
      );
      ToolTip toolTip = new ToolTip(); 
      toolTip.setValueSuffix("°C")
         .setCrosshairs(true)
         .setShared(true);
      chart.setToolTip(toolTip);
      chart.setSplinePlotOptions(new SplinePlotOptions()  
         .setMarker(  
         new Marker()  
            .setRadius(4)  
            .setLineColor("#666666")  
            .setLineWidth(1)  
         )  
      );  
      chart.addSeries(  
         chart.createSeries()  
            .setName("Tokyo")  
            .setPlotOptions(  
               new SplinePlotOptions()  
               .setMarker(  
                  new Marker()  
                  .setSymbol(Marker.Symbol.SQUARE)  
               )  
            )  
         .setPoints(  
            new Point[]{  
               new Point(7.0),  
               new Point(6.9),  
               new Point(9.5),  
               new Point(14.5),  
               new Point(18.2),  
               new Point(21.5),  
               new Point(25.2),  
               new Point(26.5)  
               .setMarker(  
                  new Marker()  
                     .setSymbol("http://highcharts.com/demo/gfx/sun.png")  
               ),  
               new Point(23.3),  
               new Point(18.3),  
               new Point(13.9),  
               new Point(9.6)  
            }  
         )  
      );  
      chart.addSeries(     
         chart.createSeries()  
            .setName("London")  
            .setPlotOptions(  
               new SplinePlotOptions()  
                  .setMarker(  
                     new Marker()  
                        .setSymbol(Marker.Symbol.DIAMOND)  
                  )  
            )     
            .setPoints(  
               new Point[]{  
                  new Point(3.9)  
                  .setMarker(  
                     new Marker()  
                        .setSymbol("http://highcharts.com/demo/gfx/snow.png")  
                  ),  
                  new Point(4.2),  
                  new Point(5.7),  
                  new Point(8.5),  
                  new Point(11.9),  
                  new Point(15.2),  
                  new Point(17.0),  
                  new Point(16.6),  
                  new Point(14.2),  
                  new Point(10.3),  
                  new Point(6.6),  
                  new Point(4.8),  
               }  
            )  
      );  
      RootPanel.get().add(chart);
   }
}

结果 (Result)

验证结果。

带符号的样条图