2012-09-12 34 views
0

不得不绘制一个不同数量的线条图,我试图通过一个变量传递系列参数,但jqPlot不知道如何不考虑它们,并保持显示默认值线宽,颜色和标签。 这是什么,我都试过(单线)最简单的版本:通过一个变量将系列参数传递给jqPlot

var seriesOptions = {lineWidth: 1, color: "#FF0000", label: "Call"}; 


var plotOptions = { 
    title: { 
      text: data['stratResult'][0] + '<br /><span class="subtitle">Results</span>' 
    }, 
    seriesDefaults: { 
     showMarker: false 
     } 
    axes: { 
     yaxis: { 
      label: '<span class="label">Result</span>' 
    }, 
               xaxis: { 
     label: '<span class="label">Price</span>' 
    } 
    }, 
    markerOptions: { 
     show: false, 
     size: 0  
    }, 
    series: seriesOptions, 
legend: { 
    show: true 
    } 
}; 


$j.jqplot('plotDiv', 
    $j.parseJSON(data['stratResult'][1]), 
    plotOptions 
); 

所有其他选项工作得很好,但一经seriesOptions变量传递表示没有影响。有人可以帮助我吗?

+0

你的变量seriesOptions不应该是一个字符串 –

+0

@Elias谢谢,我纠正了,但结果是完全一样的... – Argoron

+1

不客气,但同样,根据[文档](http://www.jqplot.com/docs/files/optionsTutorial-txt.html)系列是Json选项的数组,因此您必须添加[]并且它应该可以工作。如果你只有一个系列,那么定义seriesDefaults属性就更简洁了 –

回答

0
var seriesOptions = '{lineWidth: 1, color: "#FF0000", label: "Call"}'; 

seriesOptions必须是一个对象,而不是字符串,所以只要去掉'。

也试试这个:

var plotOptions = { 
    title: { 
      text: data['stratResult'][0] + '<br /><span class="subtitle">Results</span>' 
    }, 
    seriesDefaults: { 
     showMarker: false 
     lineWidth: 1, 
     color: "#FF0000", 
     label: "Call" 
    } 

尝试放置seriesOptionsseriesDefaults对象内。

+0

改变了这一点,谢谢指出它,但是它仍然不起作用,和以前一样。 – Argoron

+0

检查我的编辑,让我知道它是否工作 –

0

最近我遇到了类似的问题。我必须将系列标签的名称作为变量。我可以通过编写这样的seriesoptions变量来解决这个问题

var seriesOptions = [{label:lab [0]},{label:lab [1]},{label:lab [2]},{label :lab [3]}];

希望它可以帮助

相关问题