Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何格式化Highcharts columnRange以获取最低和最高温度的json数据_Javascript_Jquery_Json_Highcharts - Fatal编程技术网

Javascript 如何格式化Highcharts columnRange以获取最低和最高温度的json数据

Javascript 如何格式化Highcharts columnRange以获取最低和最高温度的json数据,javascript,jquery,json,highcharts,Javascript,Jquery,Json,Highcharts,我正在尝试在forecast.io api的Highcharts上显示信息。在这个网站上其他人的帮助下,我已经知道如何使用简单的折线图或面积图调用数据;但是,我不知道如何使用列范围图。我想显示每日最低和最高温度预测。因此,顶部列将显示今天的最低和最高温度,下一列将显示明天,依此类推 要从forecast.io调用今天的最小值和最大值,请执行以下操作: data.daily.data[0].温度min data.daily.data[0]。temperatureMax 明天将有一个“1”而不是

我正在尝试在forecast.io api的Highcharts上显示信息。在这个网站上其他人的帮助下,我已经知道如何使用简单的折线图或面积图调用数据;但是,我不知道如何使用列范围图。我想显示每日最低和最高温度预测。因此,顶部列将显示今天的最低和最高温度,下一列将显示明天,依此类推

要从forecast.io调用今天的最小值和最大值,请执行以下操作:

  • data.daily.data[0].温度min
  • data.daily.data[0]。temperatureMax
明天将有一个“1”而不是0。第二天将有一个“2”

我还没有弄明白如何制作一个每天都这样做的函数。我有一个JSFIDILE,其中包括我的forecast.ioAPI密钥。这是需要从源调用的

无论如何,任何帮助都将不胜感激

(正如您将看到的,我的x轴标签真的乱七八糟……)

$(函数(){
$(“#容器”)。高图({
图表:{
类型:“columnrange”,
倒过来:是的
},
标题:{
文本:“”
},
副标题:{
文本:“”
},
xAxis:{
},
亚克斯:{
标题:{
文本:“”
}
},
工具提示:{
valueSuffix:“°F”
},
打印选项:{
列范围:{
数据标签:{
启用:对,
格式化程序:函数(){
返回此值。y+“°F”;
}
}
}
},
图例:{
已启用:false
},
系列:[{
名称:“每日最小值和最大值”,
数据:“图表数据”,
pointStart:new Date().getTime(),
点间距:90000000,
}]
});
});
$.ajax({
url:“https://api.forecast.io/forecast/87a7dd82a91b0b765d2576872f2a3826/53.479324,-2.248485",
jsonp:“回调”,
数据类型:“jsonp”,
成功:功能(图表){
var dataArr=新数组();
var height=chart.xAxis[0]。高度;
var pointRange=chart.daily.data[0]。temperatureMax-chart.daily.data[0]。temperatureMin;
var max=图表.每日.数据[0].温度最大值;
var min=图表.每日.数据[0].温度min;
变量pointCount=(最大-最小)/pointRange;
var timeint=chart.daily.data[0]。时间;

对于(var i=0;i首先,如评论中所述:

success: function (chart) {
    ...
    var height = chart.xAxis[0].height;
}
由于某种未知原因,您试图从图表中获取xAxis的高度。同时,您
图表
变量引用的是来自AJAX调用的数据。我希望这是清楚的,所以请删除该行或更改为:

success: function (chart) {

    var myChart = $('#container').highcharts();
    var dataArr = new Array();
    var height = myChart.xAxis[0].height;
}
第二件事,这个选择:

        data: 'ChartData',
是错误的,应该有一个空数组,因为Highcharts需要数据数组,而不是一些字符串:

        data: [],
现在,在修复这些错误之后,您应该转到并创建相同的数据格式。这是Highcharts所需格式的示例


更多关于
系列的信息。数据可以在中找到,您需要阅读此信息。

图表
来自ajax调用的对象没有
xAxis
属性谢谢您,我很感谢您的反馈。我不太理解您回答的第一部分。如果我错了,请纠正我,但您是说我不能在我的AJA中使用该xAxis吗X调用?另外,我已经阅读了API,但我的数据不是静态的。它们没有提供关于如何包含非静态数据的太多细节。我已经弄明白了,但还不能包含两种数据类型,低温数据和高温数据。当然可以,但使用了错误的变量。在代码
图表中
变量ble是指来自AJAX调用的数据。正如我所说的,删除该行(它什么也不做)或者替换为我建议的代码。格式上不存在动态和静态之间的差异。您只需要为将在Highcharts中使用的数据准备适当的格式。我认为这是有道理的。我不确定哪里出了问题,但我想我知道该怎么办。谢谢
        data: [],