Javascript 以编程方式突出显示动态图时间序列

Javascript 以编程方式突出显示动态图时间序列,javascript,dygraphs,Javascript,Dygraphs,我正在组装一个web应用程序,在一个动态图上绘制今年和过去10年的天气数据时间序列。我希望今年(此时为2015年)的时间序列相对于过去几年突出显示,因此我尝试将今年的笔划宽度从默认值2增加到5。我的问题是我很难让它按程序运行。每年的每日数据采用本机数组格式,因此时间序列由数组Yr0Labels的内容标识: [“日期”、“2005”、“2006”、“2007”、“2008”、“2009”、“2010”、“2011”、“2012”、“2013”、“2014”、“2015”] 明年1月1日,YR0标签

我正在组装一个web应用程序,在一个动态图上绘制今年和过去10年的天气数据时间序列。我希望今年(此时为2015年)的时间序列相对于过去几年突出显示,因此我尝试将今年的笔划宽度从默认值2增加到5。我的问题是我很难让它按程序运行。每年的每日数据采用本机数组格式,因此时间序列由数组Yr0Labels的内容标识:

[“日期”、“2005”、“2006”、“2007”、“2008”、“2009”、“2010”、“2011”、“2012”、“2013”、“2014”、“2015”]

明年1月1日,YR0标签将以编程方式更改为:

[“日期”、“2006”、“2007”、“2008”、“2009”、“2010”、“2011”、“2012”、“2013”、“2014”、“2015”、“2016”]

在动态图选项参数中,我将默认strokeWidth设置为2,将2015的strokeWidth设置为5。因为我希望当前日历年数据在1月1日之后正确突出显示,所以我尝试通过yr0Labels[11]的内容识别要突出显示的系列

    {
     ……
     strokeWidth: 2,
     labels: yr0Labels,
     series: {  yr0Labels[11] : { strokeWidth: 5} }, 
     ……..
   }
这产生了一个语法错误-SyntaxError:missing:在属性id之后

我怀疑dygraph不想在序列标识符中看到数组语法,于是尝试通过字符串变量“cyear”来识别序列

cyear=yr0Labels[11]

    {…strokeWidth: 2, 
         labels: yr0Labels,
         series: {  cyear : { strokeWidth: 5} },
     …….}
这没有产生错误,但也没有突出显示该系列

我能做到这一点的唯一方法是直接输入当前年份值作为序列标识符

    {…strokeWidth: 2, 
         labels: yr0Labels,
         series : {  ‘2015’ : { strokeWidth: 5} },
     …….}
这是可行的,但我必须每年1月1日编辑动态图选项参数,以正确生成当前日历年绘图的数据


如何以编程方式突出显示?

问题在于如何在JavaScript对象文本中使用键

这:

同:

{ 'foo': 'bar' }
即使在作用域中有一个名为
foo
的变量。要获得想要的结果,您需要使用以下方法填充对象:

var foo = 'blah';
var o = {};
o[foo] = 'bar';

谢谢,我会试试下面的作品,再次感谢
var cyear=yr0Labels[11];var tempObj={};tempObj[cyear]={strokeWidth:5};plotOptions['series']=tempObj;
var foo = 'blah';
var o = {};
o[foo] = 'bar';