Javascript 以编程方式突出显示动态图时间序列
我正在组装一个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]的内容识别要突出显示的系列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标签
{
……
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';