Javascript 谷歌图表:“;未捕获(承诺中)错误:未知标头类型:4.7278”;错误

Javascript 谷歌图表:“;未捕获(承诺中)错误:未知标头类型:4.7278”;错误,javascript,php,jquery,charts,google-visualization,Javascript,Php,Jquery,Charts,Google Visualization,我试图通过显示货币汇率的折线图 基本上我有两种类型的值: 日期(iso8601格式) 费率(十进制数) 当我试图呈现图表时,我得到一个错误:“未捕获(承诺中)错误:未知标题类型:4.7278” 这是我的密码: PHP数组制作: $xml=simplexml_load_file('https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/usd.xml')

我试图通过显示货币汇率的折线图

基本上我有两种类型的值:

  • 日期(iso8601格式)
  • 费率(十进制数)
  • 当我试图呈现图表时,我得到一个错误:“未捕获(承诺中)错误:未知标题类型:4.7278”

    这是我的密码:

    PHP数组制作:

            $xml=simplexml_load_file('https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/usd.xml') or die("Error: Cannot create object");
        $arrayForChart[] = ["Date","Rate"];
        foreach ($xml->DataSet->Series->Obs as $key => $value) {
            $dateIso8601Format=(string)$value['TIME_PERIOD'];
            $rateForDate=(string)$value['OBS_VALUE'][0];
            $rateForDate=(float)$rateForDate;
            $arrayForChart[] = [$dateIso8601Format,$rateForDate];
        }
        $arrayForChart = json_encode($arrayForChart);
    
    Javascript

    var arrayForChart;
    $.ajax({
        type: "POST",
        url: ajaxUrl,
        //data: {configuration: Config },
        success: function (data) {
    
            arrayForChart = data;
            arrayForChart = $.map(arrayForChart, function (el) {
                return el;
            });//converting js object to js array
    
        },
        cache: false
    });
    google.charts.load("current", {packages: ["corechart", "line"]});
    google.charts.setOnLoadCallback(drawLineColors);
    
    function drawLineColors() {
    
        var data = google.visualization.arrayToDataTable([arrayForChart]);
    
        var options = {
            hAxis: {
                title: "Rate",
                id: "Rate",
                label: "Rate",
                type: "number"
            },
            vAxis: {
                title: "Date",
                id: "Date",
                label: "Date",
                type: "string"
            },
            colors: ["#a52714", "#097138"]
        };
    
        var chart = new google.visualization.LineChart(document.getElementById("chart_div"));
        chart.draw(data, options);
    }
    
    数据样本:

    ["Date","Rate","2011-01-03",4.7278,"2011-01-04",4.7301,"2011-01-05",4.6814,"2011-01-06",4.6635]
    
    任何人都可能知道问题出在哪里


    非常感谢!

    Google charts需要一组数组。您似乎提供了一组数组。例如

    数组('date','value',1,2,3,4);

    应该是

    Array(
        Array(date, value),
        Array(1, 2),
        Array(3, 4)
    );
    

    在ASP.Net中遇到相同的问题,通过更改此 添加(新对象[]{“Post”,“Total”}); 您所做的错误是您给出的是行,而不是标题/列名

    **List<object> chartData = new List<object>();
        chartData.Add(new object[]
    {
        "Post", "Total"
    });
        foreach (DataRow dtrow in dt.Rows)
        {
            chartData.Add(new object[]
                     {
                         dtrow[0].ToString(), Convert.ToInt32(dtrow[1])
                     });
        }**
    
    **列表图表数据=新列表();
    chartData.Add(新对象[]
    {
    “员额”、“总数”
    });
    foreach(数据行中的数据行)
    {
    chartData.Add(新对象[]
    {
    dtrow[0].ToString(),Convert.ToInt32(dtrow[1])
    });
    }**
    
    别忘了在定义列名后立即添加逗号。这就是我的问题所在

    function drawChart1() {
      var data = new google.visualization.arrayToDataTable([
        ['Month', 'Total claims'],
              <?php
        if(mysqli_num_rows($sqlclaims) > 0){
           while ($row = mysqli_fetch_assoc($sqlclaims)){
               echo "['".$row['FINANCIAL_']."', ".$row['tot_claims']."],";
               }
           }
      ?>
      ]);
    
    函数drawChart1(){
    var data=new google.visualization.arrayToDataTable([
    [‘月份’、‘索赔总额’],
    ]);
    
    我对
    角度谷歌图表也有同样的问题。
    该组件使用空数组初始化,然后在数据准备就绪时传递

    我在图表组件上使用*ngIf解决了这个问题,将标志设置为
    false
    ,并在数据准备就绪时将其设置为
    true

    查看此。。。