2016-04-22 58 views
0

我将数据作为JSON传递给Highcharts折线图。有多条线(曲线),它们有不同的起点和终点 - 但它们都需要一起绘制。因此,我的系列看起来像这样,这里的“数据”被布置成使得它们是x,y对:用用户输入动态转换数据(Highcharts,JavaScript,Django)

series = [{'data': [[20, 400], [30, 450]], 'name': 'pc1', 'visible': False}, 
{'data': [[40, 525], [50, 600], [70, 680]], 'name': 'pc2', 'visible': False}, 
{'data': [[80, 700], [90, 980]], 'name': 'pc3', 'visible': False}, etc. 

该数据是使用标准空气密度来计算。我希望用户能够输入不同的空气密度,并且只需点击一个按钮即可使用数据(我正在用setData思考)。

基本上,数据是风速vs RPM - X值是风速,Y是相应的RPM。通过改变投入新的空气密度,用户将产生一个调整因子,然后用它来在新点找到RPM。这样一个简单的例子:

Standard Air Density (1.225 kg/m3): 
1 mph 100rpm 
2 mph 250rpm 
3 mph 500rpm 

现在我们计算与新的空气密度的调整因子(假定1.5公斤/立方米)与式adj_factor =(新空气密度/ 1.225)^(1/3) - >此返回1.07。有了这个因素,我可以通过以风速*调整系数获取功率并插入数据来计算新的转速。

New Air Density (1.5 kg/m3) 
1 mph, (whatever RPM is @ 1.07mph (1mph*adj factor)) 
2 mph, (whatever RPM is @ 2.14mph (1mph*adj factor)) 
3 mph, (whatever RPM is @ 3.21mph (1mph*adj factor)) 

我遇到的问题是,我是一个在JS非常缺乏经验,也不太明白如何动态创建数据,或如何引用旧曲线与调整windspeeds Y值。

要做到这一点知道我必须插入数据 - 我已经使用numpy。

有没有办法从JavaScript端应用这种转换?我的图表的形式为标准HighCharts线图:

$(document).ready(function() { 
$(chart_id).highcharts({ 
chart: chart, 
title: title, 
credits: credits, 
xAxis: {}, 
yAxis: yAxis, 
legend: legend, 
series: series 

}); 

,并在我的Django查看即时定义所有的参数:

chart = {"renderTo": chartID, "type": chart_type, "height": chart_height,} 
title = {"text": 'Power Curves'} 
yAxis = {"title": {"text": 'Output (RPM)'}} 
series = json.dumps(series_) 

而该系列前面提到的形式。该图表正常工作 - 这是数据的动态加载和我正在努力实现的调整因子。

感谢

+0

你可以使用得到一系列最新数据。['系列设置新值highcharts。选项'](http://api.highcharts.com/highcharts#Series.options),返回的对象访问数据为'options.data'。然后改变数据并使用'Series.setData()'应用到系列。如果您遇到问题,请提供现场演示,例如在JSFiddle中。 –

回答

0

定义数据的3个数组在javascript和按钮单击更改阵列中的值,并使用使用setData