我有一个带有X ax的jqPlot图表具有以下格式:
xaxis: {
renderer: $.jqplot.DateAxisRenderer,
tickOptions: {
formatString: '%Y-%m-%d \n %H:%M'
},
min: minimo,
max: maximo,
}
我无法使用插件$ .jqplot.CanvasOverlay.VerticalLine在我的图表中绘制垂直线,就像在此示例中所示: example canvas-overlay jqPlot 我自己尝试了这个例子但是在我的情况下,因为我的图表在x轴上有一个格式,我只能使它适用于水平线,而不是垂直线。
这就是我现在所尝试的:
verticalLine: {
name: 'barney',
x: "2011-01-07 16:10:00.000",
lineWidth: 6,
color: 'rgb(100, 55, 124)',
shadow: false
}
我还将x值分配给变量x: "2011-01-07 \n 16:10:00.000"
,但仍然无法正常工作。
也许我应该在我已经拥有的那个上面绘制另一个jqPlot图表。但是如果可能的话我想避免使用该解决方案并且更喜欢VerticalLine方法。
答案 0 :(得分:5)
Jqplot期待一个数值而不是一个字符串(即使是日期),并且不能将你从字符串传递的值转换为日期。
您可以在jqplot中使用jsDate对象将日期字符串转换为数值:
x : new $.jsDate( '2011-01-07 16:10:00.000').getTime()
答案 1 :(得分:0)
嗯,我还想要的不仅仅是一条垂直线。所以我必须为VerticalLines创建一个对象列表。
var dates_vertical=[/*Array wit Dates*/];
var objects_vertical=[];
function create_vertical_lines() {
for (var j = 0; j < dates_vertical.length ; j++) {
objects_vertical[j]= new Object({ "verticalLine": {
"x": new $.jsDate(dates_vertical[j]).getTime(),
"color": "red",
"lineWidth": 4
}
});
};
除了在我的CanvasOverlay中,我写道:
canvasOverlay: {
show: true,
objects: objects_vertical
}
谢谢!