代码之家  ›  专栏  ›  技术社区  ›  Rob Audenaerde

Highcharts,是否将图标添加到绘图线?

  •  1
  • Rob Audenaerde  · 技术社区  · 7 年前

    我有一个Highchart图表,其中显示一些数据和一条线,指示一些限制。如果数据超出限制,我会设置警报。

    我试图用一条绘图线来可视化这个限制。这很好,但我想添加一个箭头/三角形图标,以便用户可以看到如果值高于或低于阈值,警报是否会触发。

    有关类似的图表,请参阅: http://jsfiddle.net/os5gjch5/2/ ,相关代码:

       plotLines: [{
             value: 150,
                        color: 'red',
                        width: 1,
                        zIndex:100
            }],
    

    当前:

    enter image description here

    渴望的:

    enter image description here

    我找不到一个简单的选项,这个文档。。。有什么提示吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Dmitry Joshua Enos    7 年前

    您可以添加 label 到绘图线

    label: {
      text: "🡹 Warning",
      style: {
        "color": "red"
      }
    }
    

    Here 还有一些Unicode箭头可供选择。 Docs 用于其他标签属性。
    您可以删除“警告”一词并使用 y 如果希望箭头正好位于打印线上,则为标签的属性。

    工作示例:

    Highcharts.chart('container', {
        chart: {
            type: 'column'
        },
        title: {
            text: 'Monthly Average Rainfall'
        },
        subtitle: {
            text: 'Source: WorldClimate.com'
        },
        xAxis: {
            categories: [
                'Jan',
                'Feb',
                'Mar',
                'Apr',
                'May',
                'Jun',
                'Jul',
                'Aug',
                'Sep',
                'Oct',
                'Nov',
                'Dec'
            ],
            crosshair: true
        },
        yAxis: {
            min: 0,
            title: {
                text: 'Rainfall (mm)'
            },
            plotLines: [{
              	value: 150,
    	          color: 'red',
    	          width: 1,
    	          zIndex:100,
                  label: {
                      text: "🡹 Warning",
                      style: { 
                          "color": "red"
                      }
                  }
            }],
        },
        tooltip: {
            headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
            pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
                '<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
            footerFormat: '</table>',
            shared: true,
            useHTML: true
        },
        plotOptions: {
            column: {
                pointPadding: 0.2,
                borderWidth: 0
            }
        },
        series: [{
            name: 'Tokyo',
            data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
    
        }, {
            name: 'New York',
            data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3]
    
        }, {
            name: 'London',
            data: [48.9, 38.8, 39.3, 41.4, 47.0, 48.3, 59.0, 59.6, 52.4, 65.2, 59.3, 51.2]
    
        }, {
            name: 'Berlin',
            data: [42.4, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1]
    
        }]
    });
    <script src="https://code.highcharts.com/highcharts.js"></script>
    <script src="https://code.highcharts.com/modules/exporting.js"></script>
    
    <div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>