亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何根據數據更改高圖表半徑

如何根據數據更改高圖表半徑

白衣非少年 2022-09-23 21:44:49
我有由正值和負值組成的數據,這些數據將顯示在圖表中。我試圖以正值的數據點大于負值的數據點的方式顯示數據。以下是我的代碼<html>    <head><script src="http://code.highcharts.com/highcharts.js"></script><script src="http://code.highcharts.com/modules/exporting.js"></script>    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>    </head>    <body>        <div id="demochart"></div>        <button id="update"> Update</button>        <script>            Highcharts.chart('demochart', {                chart: {                    type: 'scatter'                },                xAxis: {                    categories: [0, 10, 20, 30, 40, 50, 60, 70, 80]                },                series: [{                    name: 'Temperature',                    data: [15, 50, -56.5, -46.5, -22.1, -2.5, -27.7, -55.7, 76.5]                }]            },function(chart){                $('#update').click(function(){                    var data = chart.series[0].data;                    var new_array = [];                    new_array = data;                    console.log(new_array);                    for(var i = 0; i < new_array.length; i++){                        console.log("For: "+ new_array[i].y);                        if(new_array[i].y > 0){                                new_array[i].y = "{y:"+ new_array[i] +",marker: {radius: 10}}"                                console.log("If: "+ new_array[i].y);                        }else{                            new_array[i].y = "{y:"+ new_array[i] +",marker: {radius: 4}}"                            console.log("Else: "+ new_array[i].y);                        }                    }                    chart.series[0].setData(new_array);                })            });</script>    </body></html>當我單擊更新按鈕時,必須更改數據點值半徑的大小。這種情況能行嗎?
查看完整描述

1 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

您只需對符合您條件的點使用該方法,即可更改標記選項。出于性能原因,最好將參數設置為循環后重繪圖表,以避免在每次迭代時重繪。updateredrawfalse


Highcharts.chart('container', {

    ...

}, function(chart) {

    $('#update').click(function() {

        var points = chart.series[0].points;


        points.forEach(function(point) {

            if (point.y > 0) {

                point.update({

                    marker: {

                        radius: 10

                    }

                }, false);

            }

        });


        chart.redraw();

    })

});

現場演示:http://jsfiddle.net/BlackLabel/jznums3L/


接口參考:


https://api.highcharts.com/class-reference/Highcharts.Point#update


https://api.highcharts.com/class-reference/Highcharts.Chart#redraw


查看完整回答
反對 回復 2022-09-23
  • 1 回答
  • 0 關注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號