如何在 AJAX 回调中转换我的图表数据创建

Posted

技术标签:

【中文标题】如何在 AJAX 回调中转换我的图表数据创建【英文标题】:how can I convert my chart data creation in AJAX callback 【发布时间】:2021-09-11 17:54:42 【问题描述】:

这是我创建 highchart 图表的代码。我想转换在 AJAX 回调中制作图表的数据,因为我想让我的图表成为每分钟更新的实时图表。唯一的方法是通过阿贾克斯回调。我怎样才能做到这一点。非常相似的东西就像这样http://jsfiddle.net/jugal/j4ZYB/

    <script src="https://code.highcharts.com/stock/highstock.js"></script>
    <script src="https://code.highcharts.com/modules/exporting.js"></script>
    <script src="https://code.highcharts.com/modules/export-data.js"></script>
    <script src="https://code.highcharts.com/modules/accessibility.js"></script>
    <script src="https://code.highcharts.com/stock/modules/drag-panes.js"></script>
    <link rel="stylesheet" type="text/css" href="/public/oi chart.css">

</head>
<figure class="highcharts-figure">
    <div id="container"></div>
</figure>

<script type="text/javascript">
  
    Highcharts.stockChart('container', 
        chart: 
            height: (1 / 2 * 100) + '%' // 1:2 ratio
        ,
        rangeSelector: 
            enabled: true,
            selected: customRange,
            buttons: [
                type: 'day',
                count: 1,
                text: '1D'
            , 
                type: 'week',
                count: 1,
                text: '1W'
            , 
                type: 'week',
                count: 2,
                text: '2W'
            , 
                type: 'month',
                count: 1,
                text: '1M'
            , 
                type: 'all',
                text: 'All'
            ]
        ,
        time: 
            timezoneOffset: timezone
        ,
        title: 
            text: chartTitle,

        ,
        subtitle: 
            text: subTitle,
        ,
        yAxis: 
            offset: 60,
            title: 
                text: 'Open Interest'
            ,
            resize: 
                enabled: true
            
        ,
        xAxis: 
            type: 'datetime'
        ,

        legend: 
            layout: 'vertical',
            align: 'right',
            verticalAlign: 'middle'
        ,

        plotOptions: 
            series: 


                marker: 
                    enabled: false
                ,
                label: 
                    connectorAllowed: false
                ,

            
        ,

        series: [
            name: 'Expected',
            data: [<% for(var i=0; i < expected_data.length; i++)  %> [<%= expected_data[i] %>], <%  %>].sort()

        , 
            name: 'Actual',
            data: [<% for(var i=0; i < actual_data.length; i++)  %> [<%= actual_data[i] %>], <%  %>].sort()

        ],


        responsive: 
            rules: [
                condition: 
                    maxWidth: 500
                ,
                chartOptions: 
                    legend: 
                        layout: 'horizontal',
                        align: 'center',
                        verticalAlign: 'bottom'
                    
                
            ]
        

    );
</script>

</html>```

【问题讨论】:

这能回答你的问题吗? ***.com/questions/13157693/… 是的,它是相似的,但是 url 中的内容......它是处理数据的位置......我对吗? 【参考方案1】:

您可以尝试这种方法来实现所需的输出。我认为代码中的一切都解释得很好。这里的图表不是动态的,因为数据是静态的JSON在线存储链接。

//create the initial chart
let chart = Highcharts.chart('container', 
  series: []
);

//the chart is update every each 3 seconds
setInterval(function() 
  fetch("https://api.npoint.io/cc798213da33bfead2d6")
    .then(response => response.json())
    .then(jsonData => 
      // define series variable
      const series = [
        data: jsonData.data1
      , 
        data: jsonData.data2
      ];

      //update chart series config
      chart.update(
        series: series
      , true, true, true)
    );
, 3000);

演示:https://jsfiddle.net/BlackLabel/bs5Ltdo0/

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

【讨论】:

您能告诉我获取 URl 中的内容吗?根据我的理解,它是处理数据的 URL,对吧? 你能告诉我如何将我的数据转换为数组数组中的 url URL 指向一个返回 json 的页面,Sebastian 使用的链接显示了 highcharts 遵循的格式。如何生成这些数据取决于您。 您好,我仍然无法以 json 格式传递数据,您能否举一个类似于我的情况的示例以便更好地理解 @ness 你的数据是如何生成的?

以上是关于如何在 AJAX 回调中转换我的图表数据创建的主要内容,如果未能解决你的问题,请参考以下文章

如何在外面引用js中ajax回调函数中的值

如何在 Ruby on Rails 中完成延迟作业后执行 ajax 回调?

如何使用 ajax 调用更新谷歌仪表图表?

我如何在Highcharts图表上使用动态数据?

如何使用jquery监视ajax请求的进度响应

如何在 Dash/Plotly 应用程序中自动为多个图形添加回调